【视频】手把手教你写抓美女的爬虫~

浏览: 1631

今天呢,大邓给大家写个爬图片的爬虫,毕竟之前写了验证码的爬虫,关于图片保存已经涉及了,那么咱们就来个图片爬虫吧。

毕竟网上的数据除了文本,还有图片这一大类。凭啥装作看不见呢!!今天大邓就突破自己之前的界限,爬爬图片,有益身心。O(∩_∩)O

网站http://desk.zol.com.cn/

我们直接打开美女标签的网址,打开如下


写爬虫前,我们一定要清楚思路,不然写起来会很混乱,写的很纠结。今天我就没构思思路,觉得很easy,就随便写吧。结果写的很乱,功能实现了,但是工作量大了好多。后来录制视频时,才按照思路展开,省时又省力。

思路梳理

一、分析网站url结构

      1、分析主页的网址url规律

      2、 获得主页中不同详情页的url

           使用BeautifulSoup和re库获取到详情页的url

      3、打开图片集,获得壁纸大图的url

            使用re正则匹配出壁纸大图的url

二、壁纸的下载与保存


开始实战


1、分析主页的url,这个比较简单,我们填充tag和page的值就可以构造主页面url

base_url = 'http://desk.zol.com.cn/{tag}/{page}.html'

3、获得主页中不同图片集的url

      使用BeautifulSoup和re库获取到图片集的url

如上图,我们先用Beautifulsoup库将图片集定位出来。我们只需找到能代表这类图片集的一个标签找到即可,推广开就找到整个主页面所有的详情页url

url = base_url.format(tag='chemo', page=i)
resp = requests.get(url)

#防止中文部分出现乱码,详情可看视频
resp.encoding = 'gb2312'
bsObj = BeautifulSoup(resp.text, 'lxml')
PicUrlList = bsObj.find_all('li', {'class':'photo-list-padding'})

找到这类标签(返回的是列表)后,我们在遍历列表中的元素,对每个元素进行正则匹配,匹配出详情页url(href是url的一部分,后面要进行拼接才能成为完整的url)

href_pattern = re.compile(r'href="https://ask.hellobi.com/(.*?)"')
name_pattern = re.compile(r'title="(.*?)" width="208px"')

for Pic in PicUrlList:
   String = str(Pic)
   page_url = re.findall(href_pattern, String)[0]
   name = re.findall(name_pattern, String)[0]
   info = (page_url,name)


 3、打开图片集,获得壁纸大图的url

       使用re正则匹配出壁纸大图的url

b_url = 'http://desk.zol.com.cn'
url = b_url + picurl
resp = requests.get(url).text

img_src_pattern = re.compile(r'nowPicSrc      : "(.*?)"')

img_src = re.findall(img_src_pattern, resp)[0]
img = requests.get(img_src).content

4、下载保存图片

path = os.getcwd() + '/车模/' + picname + '.jpg'
with open(path,'wb') as f:
   f.write(img)



完整代码


【视频】手把手教你写抓美女的爬虫~


关注公众号即可获得项目源码

推荐 1
本文由 邓旭东HIT 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

1 个评论

旭东辛苦了。这么晚还在写

要回复文章请先登录注册