首页 > 编程语言 > 详细

Python爬虫(批量爬取某网站漂亮小改改)

时间:2020-02-20 17:44:19      阅读:328      评论:0      收藏:0      [点我收藏+]

 

1.需要用到的库有: 

      Requests    re    os    time 如果没有安装的请自己安装一下,pycharm中打开终端输入命令就可以安装

  技术分享图片

 

 

 

    2.IDE : pycharm

    3.python 版本: 3.8.1

2.爬取地址:

https://www.vmgirls.com/9384.html

-------------------废话不多说了,不懂的可以给我留言哦,接下来我们一步一步来操作------------------

 

1.请求网页

1 # 请求网页
2 import requests
3 
4 response=requests.get(https://www.vmgirls.com/9384.html)
5 
6 print(response.text)

  执行结果:

技术分享图片

 

 

 发现请求到的是403,直接禁止了我们访问,requests库会告诉他我们是python过来的,他知道我们是一个python禁止我们反爬

 

技术分享图片

 

 

 解决:

  我们可以伪装头,把头设置一下

技术分享图片

 

 

 

# 请求网页
import requests

headers={
       user-agent : Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36
}
response=requests.get(https://www.vmgirls.com/9384.html,headers=headers)

print(response.request.headers)

执行结果:

  这样头就伪装了技术分享图片

 

 

 

2.解析网页

# 请求网页
import requests
import re

headers={
       user-agent : Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36
}
response=requests.get(https://www.vmgirls.com/9384.html,headers=headers)

# print(response.request.headers)
# print(response.text)
html=response.text
#解析网页
urls=re.findall(<img alt=".*?" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" width=".*?" height=".*?" class="alignnone size-full" data-src="(.*?)" data-nclazyload="true">,html)
print(urls);

 结果:技术分享图片

 

 

 

 可能对re.findall后面不太理解怎么来的,关键就是要找到图片的dom然后根据re库的一个匹配规则来匹配,要匹配的用(.*?)来表示,不需要匹配的用.*?来代替就可以了,

打开网址,按f12查看源码找到图片的代码

技术分享图片

 

 

 技术分享图片

 

 

 复制图片代码,打开网页源码按 ctrl+f 进行搜索,找到图片源码的位置

技术分享图片

 

 

 

3.保存图片

  具体可以看源码,我给这些图片创建了一个文件夹(需要os库),并且命了名,这样分类下次看小姐姐就比较容易找到啦

技术分享图片

 

 

 

# 请求网页
import time
import requests
import re
import  os
headers={
       user-agent : Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36
}
response=requests.get(https://www.vmgirls.com/9384.html,headers=headers)

# print(response.request.headers)
# print(response.text)
html=response.text

# 解析网页
# 目录名字
dir_name=re.findall(<img alt="(.*?)" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" width=".*?" height=".*?" class="alignnone size-full" data-src=".*?" data-nclazyload="true">,html)[-1]
if not os.path.exists(dir_name):
    os.mkdir(dir_name)
urls=re.findall(<img alt=".*?" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" width=".*?" height=".*?" class="alignnone size-full" data-src="(.*?)" data-nclazyload="true">,html)
print(urls);

# 保存图片
for url in urls:
    # 加个延时,避免给服务器造成压力
    time.sleep(1)
    # 图片的名字
    file_name=url.split(/)[-1]
    response = requests.get(url, headers=headers)
    with open(dir_name+/+file_name,wb) as f:
        f.write(response.content)

 

Python爬虫(批量爬取某网站漂亮小改改)

原文:https://www.cnblogs.com/jxnc/p/12335689.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!