如果是JS动态渲染的页面,爬虫该怎么解决

如果是JS动态渲染的页面,爬虫该怎么解决

问题描述:

纵横中文网更新之后,跟视频里面呈现的不太一样。

我抓了一下这个位置的div。没有抓到。


相关截图:

https://img1.sycdn.imooc.com/climg/65ae813109d402df19200911.jpg

相关代码:

import requests
from lxml import etree

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}

def parse(url):
    res = requests.get(url, headers=headers)
    tree = etree.HTML(res.text)
    # print(res.text)
    items = tree.xpath('//div[@class="book--hover-box"]')
    print(items)

parse('https://www.zongheng.com/rank?nav=one-day&rankType=3')

print出来的是一个空数组。

于是我把网页存下来,然后查了一下是否存在这个DOM元素。没有找到

相关代码:

with open('./docs/index.html', "w", encoding="utf-8") as f:
    f.write(res.text)

相关截图:

https://img1.sycdn.imooc.com/climg/65ae81c709a3b43a09390601.jpg


我拿书名去查了一下,发现是写在JS脚本里的。

相关截图:

https://img1.sycdn.imooc.com/climg/65ae82240956999d14950637.jpg



问题描述:

学的不深入,不知道遇到这种情况该怎么解决。

如果只是想获取书名以及书籍ID,直接看JS代码就可以了。但如果是这样,就不算是爬虫了。
所以请教一下老师,如果还是想以爬虫的方法,来扒取这个页面上的书名以及书籍详情页链接,该如何实现。

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
夜魇丶 提问者 2024-01-23 17:41:23

【PC端没找到删除问题的位置…】

看了后面豆瓣的课程,解决该问题了。

  • 同学,你好!同学自己解决了问题棒棒哒~
    祝学习愉快~

    2024-01-23 20:36:34
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师