0
点赞
收藏
分享

微信扫一扫

python爬取斗鱼主播图片

江南北 2022-11-16 阅读 59


      今天闲来无事,爬取一下斗鱼女主播的图片,之前学习scrapy的时候写过一个找不到了,今天使用requests和bs4重新写了一份,闲话不多说,直奔主题。

首先用Chrome浏览器访问斗鱼官网:
当然是选择颜值辣:


然后鼠标放在第一张图片上,检查元素:
发现图片的url在这里:
​​​​​​
我们会发现data-original和src内容是一样的,那就选择哪个就可以喽,我们打开这个url试一下:
​​

OK,就是这个了,然后对这个标签在的位置进行分析,发现:
​​
所有图片都在这个div标签下,那就好办了,开始写代码:
首先:

import requests
from bs4 import BeautifulSoup


headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/62.0.3202.89 Safari/537.36'
}

导入requests和bs4库,顺带带上了headers。

然后是进行筛选,获取到所有图片的url


def get_img_url():

url = 'https://www.douyu.com/directory/game/yz'
response = requests.get(url, headers=headers)

soup = BeautifulSoup(response.text, 'html.parser')

girl_list = soup.select('div[class="items items01 item-data clearfix"]')
for girl in girl_list:

li_list = girl.select('li')
for li in li_list:
yield li.img['data-original']

复制过来为啥缩进都没有了,好奇怪,各位可以自行缩进,逻辑不难,应该都能看懂。



最后是主函数,对图片进行保存:


if __name__ == '__main__':

img_url = get_img_url()
for num, img in enumerate(img_url):

img_response = requests.get(img)
# response = requests.get('https://rpic.douyucdn.cn/live-cover/appCovers/2017/12/05/1977639_20171205204858_big.jpg')
Image = img_response.content

Image_path = './pictures/%s.png' % num

fp = open(Image_path, 'wb')

fp.write(Image)

fp.close()

还是没有缩进,for以下的内容都是for循环内的。。。

到此,大功告成,成果如下


还有一个问题没实现,就是当前页只有这么多主播照片,第二页还有呢,各位可以自行加上翻页,这样就可以将所有颜值的主播照片都怕去了下来


。。


举报

相关推荐

0 条评论