爬取的图片打不开
爬取图片中发生的问题:图片是爬下来了,也是jpeg格式的,但是打不开代码如下:
"""请求网页"""
import requests
import re
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'
}
response = requests.get('https://www.vmgirls.com/12985.html', headers=headers)
print(response.request.headers)
html = response.text
"""解析网页"""
urls = re.findall('<a href="(.*?)" alt=".*?" title=".*?">', html)
print(urls)
"""保存图片"""
for url in urls:
# 图片的名字
file_name = url.split('/')[-1]
response = requests.get("https://www.vmgirls.com/12985.html", headers=headers)
with open(file_name, 'wb') as f:
f.write(response.content)
在网上看的视频中网页源代码是这样的:143619 标红的地方图片地址是https开头的
但相同的地方我所得到的图片网址是'//t.cdn.ink/image/2019/10/470B6B0D-609A-4A84-A533-351AF30F3927-1-scaled.jpeg' 的格式 是不是源头网页做过了调整?
你爬下来的不是图片文件 wp231957 发表于 2021-5-15 17:25
你爬下来的不是图片文件
可是图片拓展名是jpeg诶 kris0913 发表于 2021-5-15 19:49
可是图片拓展名是jpeg诶
最常见的反爬,headers加上referer就行了。 for url in urls:
# 图片的名字
file_name = url.split('/')[-1]
response = requests.get("https://www.vmgirls.com/12985.html", headers=headers)
with open(file_name, 'wb') as f:
f.write(response.content)
这段代码中get()方法的url传错了,应该是requests.get(url,headers=headers)
当然了url可能需要处理,比如开头加上http之类的 redforce 发表于 2021-5-15 20:34
这段代码中get()方法的url传错了,应该是requests.get(url,headers=headers)
当然了url可能需要处理, ...
对,url这也是一个问题,刚分析了网页,是有referer反爬的,没具体看他的代码{:9_227:} YunGuo 发表于 2021-5-15 20:47
对,url这也是一个问题,刚分析了网页,是有referer反爬的,没具体看他的代码
具体代码是怎么写呀
请求头变成headers={'referer': 'https://www.vmgirls.com/12985.html'}这样吗
还是在原来的基础上加上这句话呢? redforce 发表于 2021-5-15 20:34
这段代码中get()方法的url传错了,应该是requests.get(url,headers=headers)
当然了url可能需要处理, ...
url不是get方法里的一个参数吗。。我直接写了应该也可以吧 {:9_241:}
程序是可以运行的 但就是下载下来的图片不能打开哈哈哈 这个网站好狗啊,右键连 F12 都打不开
非要点击网站地址,再按 F12 本帖最后由 YunGuo 于 2021-5-16 18:52 编辑
kris0913 发表于 2021-5-16 14:12
具体代码是怎么写呀
请求头变成headers={'referer': 'https://www.vmgirls.com/12985.html'}这样吗
还 ...
headers里面加一个referer
headers = {
'referer': 'https://www.vmgirls.com/',
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'
}
你的代码这样改下
"""请求网页"""
import requests
import re
headers = {
'referer': 'https://www.vmgirls.com/',
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36'
}
response = requests.get('https://www.vmgirls.com/12985.html', headers=headers)
html = response.text
"""解析网页"""
urls = re.findall('<a href="(.*?)" alt=".*?" title=".*?">', html)
# print(urls)
"""保存图片"""
for url in urls:
# # 图片的名字
file_name = url.split('/')[-1]
img_url = 'https:' + url
response = requests.get(img_url, headers=headers)
with open(file_name, 'wb') as f:
f.write(response.content) 0.0 Daniel_Zhang 发表于 2021-5-16 16:56
这个网站好狗啊,右键连 F12 都打不开
非要点击网站地址,再按 F12
是看b站上的视频里说的网站{:5_105:}
页:
[1]