python学习笔记(2)-爬取图片(动态页面)

爬取图片,关于动态页面的关键信息分析


Python版本:3.9.6

ide:PyCharm 2021.1.3


        以百度图片为例,打开百度图片的首页,点击城市建筑摄影专题,可以看到很多精美的图片,F12审查元素后发现所有的图片都在<div id="imgList">标签下。

         类似地,尝试使用requests库获取html内容解析图片的链接。

import requests
from bs4 import BeautifulSoup

url = 'https://image.baidu.com/search/albumsdetail?tn=albumsdetail&word=%E5%9F%8E%E5%B8%82%E5%BB%BA%E7%AD%91%E6%91%84%E5%BD%B1%E4%B8%93%E9%A2%98&fr=searchindex_album%20&album_tab=%E5%BB%BA%E7%AD%91&album_id=7&rn=30'
req = requests.get(url)
html = BeautifulSoup(req.text, 'lxml')
print(html)
div = html.find('#imgList').find_all('a', class_='albumsdetail-item')
urls = []
for each in div:
    urls.append(each.get('href'))

        程序运行时,会看到下面的报错:

        这个报错可以百度到,是重定向太多次,只需要在get请求加上"allow_redirects=False"禁止重定向即可。我们加好属性并打印下获取到的html,再次运行程序。

import requests
from bs4 import BeautifulSoup

url = 'https://image.baidu.com/search/albumsdetail?tn=albumsdetail&word=%E5%9F%8E%E5%B8%82%E5%BB%BA%E7%AD%91%E6%91%84%E5%BD%B1%E4%B8%93%E9%A2%98&fr=searchindex_album%20&album_tab=%E5%BB%BA%E7%AD%91&album_id=7&rn=30'
req = requests.get(url, allow_redirects=False)
html = BeautifulSoup(req.text, 'lxml')
print(html)
div = html.find('#imgList').find_all('a', class_='albumsdetail-item')
urls = []
for each in div:
    urls.append(each.get('href'))

        输出结果如下:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值