爬取的html错误

来源:14-12 获取和解析详情页 - 1

李_冉

2021-09-08

老师,我这里碰到一点问题,在requests.get()方法中,get到的是F12的Sources而不是Elemeuts ,并且每一个论坛的Sources还不一样。

以下是我的代码:

def parse_list(url):
    res_text=requests.get(url).text
    sel=Selector(text=res_text)
    all_trs=sel.xpath('//div[@class="user-tabs user-tabs-1580"]//div[@class=tab_list_item]')[3:]
    print(all_trs)
    print(len(all_trs))
    for tr in all_trs:
        topic = Topic()
        if tr.xpath("//div/div[3]/div/div/div[2]/span/text()").extract():
            score = tr.xpath("//div/div[3]/div/div/div[2]/span/text()").extract()[0]
            topic.score =score
        topic_url = parse.urljoin(domain, tr.xpath("//div/div[2]/a/@href").extract()[0])
        topic_title = tr.xpath("//div/div[2]/a/span/text()").extract()[0]
        answer_nums = tr.xpath("//div/div[3]/div/div/div[3]/span/span/text()").extract()[0]
        click_nums =tr.xpath("//div/div[3]/div/div/div[1]/span/text()").extract()[0]
        topic.id = int(topic_url.split("/")[-1])
        topic.title = topic_title
        topic.click_nums = int(click_nums)
        topic.answer_nums = int(answer_nums)
        topic.save(force_insert=True)

这里的Xpath跟您的有所不同,因为csdn改版了。
是要直接分析Sources吗?
希望您能给予答复。

写回答

1回答

bobby

2021-09-10

所有的http请求库直接请求到的都是源码中的部分而不是f12的部分,不过这样也不一定,f12是执行js之后的html内容,如果这个页面没有js去改变html结构那么这个时候两者的内容是一致的,课程中讲解过这点的

0
3
李_冉
好的,谢谢
2021-09-23
共3条回复

Python爬虫工程师实战 大数据时代必备

慕课网严选精品教程,高质量内容+服务!

2377 学习 · 1158 问题

查看课程