网页爬虫抓取百度图片(如何使用加载加载技术的网页数据异步技术(图) )
优采云 发布时间: 2022-02-06 21:21网页爬虫抓取百度图片(如何使用加载加载技术的网页数据异步技术(图)
)
当你搜索百度图片(百度图片)时,你会发现,当你向下滑动鼠标时,会自动加载下一页的图片数据,但是网页的URL并没有改变。因此,您无法通过通常的构建 URL 的方法来抓取 Web 数据。这是由于网页使用的异步加载技术。
异步加载技术
传统网页如果需要更新网页信息,则需要重新加载整个网页的数据信息。因此,会出现加载速度慢的情况,导致用户体验不佳。但是,使用异步加载技术加载网页数据,会通过后台与服务器之间的少量数据交换来完成数据更新。
接下来,我们将描述如何使用异步加载技术来抓取 Web 数据。以简书网为例()网页是《从零开始学Python网络爬虫》作者罗攀的主页。我们的目的是抓取用户文章主题
1、在Chrome浏览器中按F12或者右键动态->勾选,继续向下滚动浏览其他没有变化的动态发现页面的URL。选择 Network->XHR->Response 选项将观察到网页返回一个 XML 文件。
2、连续向下滑动页面观察Name列的数据,获取之前页面的URL
3、通过分析网页数据,我们可以得到常规的url,然后爬取数据就容易多了。下面的代码:
import requests
import re
#构造URL列表
urls = ['https://www.jianshu.com/u/9104ebf5e177/?order_by=shared_at&page={0}/u'.format(str(i)) for i in range(1,20)]
headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36'}
for url in urls:
res = requests.get(url,headers = headers)
selsctor = re.findall('(.*?)',res.content.decode('utf-8'),re.S)
for i in selsctor:
print(i)