爬取的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结构那么这个时候两者的内容是一致的,课程中讲解过这点的
032021-09-23
相似问题