软件测试交流软件测试程序员

python爬取斗鱼主播图片

2018-01-15  本文已影响121人  我也讨厌自己

用python爬取斗鱼主播图片

转载自:http://blog.sina.com.cn/s/blog_166ae58120102xok6.html

今天闲来无事,爬取一下斗鱼女主播的图片,之前学习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循环内的。。。

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

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

怎么样,学会了没?

是不是感觉很厉害?

那还不赶快来学习?

来软件测试交流群680748947,和你一起学习软件测试知识,共同进步~

上一篇下一篇

猜你喜欢

热点阅读