我在爬取快看漫画过程当中无法获得完整的元素,该怎么办,具体情况是
为什么无法获得noinit之后的属性?
爬取结果
我的代码
#! python3
#downloadkkmh.py - Downloads every single KKMH comic.
import requests,os,bs4,lxml
picnum=0
url='https://www.kuaikanmanhua.com/web/comic/316174/'
header={"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36"}
os.makedirs('kkmh',exist_ok=True)
res=requests.get(url,headers=header)
res.raise_for_status()
soup=bs4.BeautifulSoup(res.text,'lxml')
elem=soup.select('.imgList img')
for i in range(len(elem)):
print(str(elem[i]))
这个是简单的反爬虫机制,数据没有直接渲染在html元素上,而是在js中,然后再用js脚本去把数据渲染在html元素中,页面我看了 在最下面的页面script标签里面有漫画的url地址,你可以用正则去取
这个网页中的内容是通过js读取外部json数据来动态更新的。
requests只能获取网页的静态源代码,动态更新的取不到,
对于动态更新的要用selenium 的 webdriver 爬取。
或者是通过F12控制台分析页面数据加载的链接,找到真正json数据的地址进行爬取。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632