VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > python3 >
  • 【Python爬虫】:爬取干货集中营上的全部美女妹子(翻页处理)

一.确定爬取思路

今天突发奇想,能不能使用python爬虫来爬取一些妹子图片呢,于是摩拳擦掌开始干了起来。首先打开网页htttps://gank.io 当中的妹子专栏,

发现里面全是妹子,如下所示:

网址如下所示:

https://gank.io/special/Girl

翻到最下面发现按钮,一共有十个分页,如下所示:

 

 因此我点击了第二个分页,进去查看网页,看点击之后的网址会不会发生改变,如果网址没有发生改变。说明这是一个静态网页,如果改变则说明点击按钮触发了ajax请求,则有可能是get也有可能是post请求。

后来观察发现网址变成了:

https://gank.io/special/Girl/page/2

翻页到第三页,网址则变成了:

https://gank.io/special/Girl/page/3

因此我们肯定是加载的静态网页,因此我们进行翻页就太简单了,只需要变化请求网页的网址即可。于是我们在每一个网页当中查看当前网址的源代码,找到图片源在哪儿:

如下图所示:

 

 这样我们就可以确定图片的url了,在爬取的时候在后面加上jpg的后缀即可。

二.开始编写代码

这样代码就很简单了,如下所示:

复制代码
import requests
import re
import time
from pandas import Series,DataFrame
#1.编写爬取美女土图片
headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36'
}

page_text=''
print("开始网络爬虫!!")
for i in range(1,10):
    #对指定url发起的请求url是携带参数的
    url = 'https://gank.io/special/Girl/page/'
    url=url+str(i)
    print(url)
    response=requests.get(url=url,headers=headers)
    page_text=page_text+'\n'+response.text
    print("这是第{}轮爬取".format(i))

#print(page_text)

page_text=page_text.split("\n")
#               style="background-image:url(
# 这里进行正则匹配
url_list=[]
for i in page_text:
    if re.match('               style="background-image:url',i):
        url_list.append(i)
    else:
        pass

i=0
while i<len(url_list):
    url_list[i]='https://gank.io'+eval(url_list[i].split("(")[1].split(")")[0])

    i+=1

#开始下载图片,每下载成功一次图片,就会显示下载成功
for i in url_list:
    image_data=requests.get(i,headers=headers).content
    image_name='/'+i.split("/")[4]
    image_path='./'+image_name+'.jpg'
    with open(image_path,'wb') as fp:
        fp.write(image_data)
        print("{} : 下载成功!".format(image_name))
复制代码

得解!最后在文件夹里的图片如下所示:

 

相关教程