绅士专用,爬取妹子图片

举报
华为云社区精选 发表于 2020/06/23 14:41:11 2020/06/23
【摘要】 Python连接数据库,为后期相关操作做准备

开搞开搞

安装第三方库

安装第三方请求库(requests)
pip install requests

请求页面

请求成功了
存在特殊情况:请求失败
原因八成是网页知道我们是Python过来的不给我们请求。

这里教各路神仙去解决这个User-Agent的尴尬问题:



嗯…怎么看网页的啊?
啊Sir。来了不要催
(只好打马赛克了)



1丨## 请求网页
2丨import requests
3丨headers={
4丨    'User-Agent':'only老K'# 这里可以随意输入,也可以输入网页上面的User-Agent
5丨}
6丨response = requests.get('https://www.vmgirls.com/12945.html')
7丨print(response.request.headers)
8丨print(response.text)


解析网页

需要使用 re库来进行正则匹配
找到我们的图片的位置


上面注意看匹配内容
然后进行解析(我们不是什么都需要匹配的,只是需要匹配href里面的内容)


1 丨## 请求网页
2 丨import requests
3 丨import re
4 丨
5 丨headers = {
6 丨    'User-Agent':'only老K'# 这里可以随意输入,也可以输入网页上面的User-Agent
7 丨}
8 丨response = requests.get('https://www.vmgirls.com/12945.html')#然后这里就吧上面的headers放进去
9 丨#response = requests.get('https://www.vmgirls.com/12945.html',headers=headers)
10丨# print(response.request.headers)
11丨# print(response.text)
12丨 html = response.text
13丨#解析网页
14丨urls = re.findall('<a href="(.*?)" alt=".*?" title=".*?">',html) # (.*?) 意思就是匹配这个数据
15丨 print(urls)

保存图片

第一版本:(文件存在在当前的文件夹,没有创建出来分类)

1 丨User-Agent:请求对象   AppleWebKit:请求内核  Chrome浏览器
2 丨## 请求网页
3 丨import requests
4 丨import re
5 丨import time
6 丨
7 丨headers = {
8 丨    'User-Agent':'only老K'# 这里可以随意输入,也可以输入网页上面的User-Agent
9 丨}
10丨response = requests.get('https://www.vmgirls.com/12945.html')
11丨 # print(response.request.headers)
12丨# print(response.text)
13丨html = response.text
14丨#解析网页
15丨urls = re.findall('<a href="(.*?)" alt=".*?" title=".*?">',html)
16丨print(urls)
17丨# 保存图片
18丨for url in urls:
19丨    time.sleep(1) #睡眠一秒,别把别人网站查崩了
20丨    file_name = url.split('/')[-1]
21丨    response = requests.get(url) # 重新请求网站 图片地址就可以直接看了
22丨    with open(file_name,'wb') as f: #'wb':二进制 file_name:图片名称
23丨        f.write(response.content)


图片就有了…

有问题?有点…不可能数据啥子的都放这里吧…

1 丨## 请求网页
2 丨import requests
3 丨import re
4 丨import time
5 丨import os
6 丨
7 丨headers = {
8 丨    'User-Agent':'only老K'# 这里可以随意输入,也可以输入网页上面的User-Agent
9 丨}
10丨response = requests.get('https://www.vmgirls.com/12945.html')
11丨# print(response.request.headers)
12丨# print(response.text)
13丨html = response.text
14丨#解析网页
15丨dir_name = re.findall('<h1 class="post-title h3">(.*?)</h1>',html)[-1] #根据网页标题去做我们的文件夹名字
16丨if not os.path.exists(dir_name):
17丨    os.mkdir(dir_name)
18丨urls = re.findall('<a href="(.*?)" alt=".*?" title=".*?">',html) # (.*?) 意思就是匹配这个数据
19丨# print(urls)
20丨# 保存图片
21丨for url in urls:
22丨    time.sleep(1)
23丨    file_name = url.split('/')[-1]
24丨    response = requests.get(url)
25丨    with open(dir_name +'/' + file_name,'wb') as f: #'wb':二进制 file_name:图片名称
26丨        f.write(response.content)


网络觉得你的爬取速度…


文章作者:only老K

文章来源:https://blog.csdn.net/weixin_44255950/article/details/106729309

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。