本篇文章给大家谈谈python爬取网页图片研究问题,以及python爬虫爬取图片对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、Python爬虫爬取图片这个报错怎么处理?
- 2、怎样用python爬取网页
- 3、Python如何爬取百度图片?
- 4、python爬图片报错 [Errno 13] Permission denied: 'D:\python\test2'
- 5、使用python爬取网页,获取不到图片地址
- 6、python3 爬取图片异常的原因?
Python爬虫爬取图片这个报错怎么处理?
你好!你的错误原因在于html页面获取到的img标签src属性中的链接,可能是因为src中的url格式是这样的:
img src="//hao123.com/xxx/xxx/xxx/"/img
这样获取到的链接都没有带上协议:http或者https。而导致程序抛出ValueError的错误异常。
因为正常的url格式应该类似这样的:
即 协议://用户名:密码@子域名.域名.顶级域名:端口号/目录/文件名.文件后缀?参数=值#标志
参考网页链接
可将代码中第一个for循环中download_links.append修改为:
for pic_tag in soup.find_all('img'):
pic_link = pic_tag.get('src')
download_links.append('http:' + pic_link)
怎样用python爬取网页
# coding=utf-8
import urllib
import re
# 百度贴吧网址:
# 根据URL获取网页HTML内容
def getHtmlContent(url):
page = urllib.urlopen(url)
return page.read()
# 从HTML中解析出所有jpg的图片的URL
# 从HTML中jpg格式为img ... src = "xxx.jpg" width='''
def getJPGs(html):
# 解析jpg图片URL的正则表达式
jpgReg = re.compile(r'img.+?src="(.+?\.jpg)"')
# 解析出jpg的URL列表
jpgs = re.findall(jpgReg, html)
return jpgs
# 用图片url下载图片 并保存成制定文件名
def downloadJPG(imgUrl, fileName):
urllib.urlretrieve(imgUrl, fileName)
# 批量下载图片,默认保存到当前目录下
def batchDownloadJPGs(imgUrls, path='../'): # path='./'
# 给图片重命名
count = 1
for url in imgUrls:
downloadJPG(url, ''.join([path, '{0}.jpg'.format(count)]))
print "下载图片第:", count, "张"
count += 1
# 封装:从百度贴吧网页下载图片
def download(url):
html = getHtmlContent(url)
jpgs = getJPGs(html)
batchDownloadJPGs(jpgs)
def main():
url = ""
download(url)
if __name__ == '__main__':
main()
Python如何爬取百度图片?
几乎所有的网站都会有反爬机制,这就需要在爬取网页时携带一些特殊参数,比如:user-agent、Cookie等等,可以在写代码的时候用工具将所有参数都带上。
python爬图片报错 [Errno 13] Permission denied: 'D:\python\test2'
python爬图片报错 [Errno 13] Permission denied: 'D:\\python\\test2',是代码输入错误造成的,解决方法如下:
1、首先在网页上抓取图片时open函数有时会报错,如图。
2、然后,根据提示找到错误代码处进行查看,是open函数出了问题。
3、再仔细看这个部分报错的文件名称,发现有个*号,问题就找出来了。
4、使用.replace('*','')将*号替换,就可以了。
5、然后再次运行该代码,最后,图片抓取完成,就不会再报错了。
使用python爬取网页,获取不到图片地址
这个大图片是在点击之后用 JS 控制加载的。
你可以看看 js/js.js 这个文件,253 行:
function changeImg(){
jQuery("#bitImg").attr('src','p/p'+pictID+'/'+indexNum+'.'+jpgPng);
}
其实大图的规律很好找, 下面缩略图列表的 src 可以用 #variContent li img 取到,可以在源码中的 107 行找到:
view-source:
缩略图列表地址长这样:
/p/p0997/tn/1.jpg
/p/p0997/tn/2.jpg
/p/p0997/tn/3.jpg
...
如果要获取大图,只要去掉“tn”这一段就可以:
/p/p0997/1.jpg
/p/p0997/2.jpg
/p/p0997/3.jpg
...
然后拼接域名在前面,GET 下来就是大图,比如第一个大图链接:
第一个大图地址
不过,你如果仅仅只是想要抓那个站的全部素材,穷举“p0997”这一段的序号(比如改成“p0098”,这个应该是图集的 ID),并且遍历最后一段的图片序号,扩展名可能是 jpg 也可能是 png,从 1 开始(“1.jpg”,“2.jpg”...)直到返回 404 停止。
思路大概是这么个思路,不过话说回来,你这么爬人家素材真的道德吗?
python3 爬取图片异常的原因?
我们在下载文件时,一会会采取urlretrieve或是requests的get方式,
from urllib.request import urlretrieve
urlretrieve(self.url, filename="xxx.png")
但对于连续下载,各个文件保存是需要时间的,而程序运行永运是快于存储的,我怀疑这是水管里流水速度与缸的大小不合适的原因,那可以试试下面这种方式:
r = requests.get(url, stream=True)
with open(local_filename, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
if chunk: # filter out keep-alive new chunks
f.write(chunk)
f.flush()
python爬取网页图片研究问题的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于python爬虫爬取图片、python爬取网页图片研究问题的信息别忘了在本站进行查找喔。
2、本站永久网址:https://www.yuanmacun.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
源码村资源网 » python爬取网页图片研究问题(python爬虫爬取图片)
1 评论