python爬虫爬取图片简单(python 爬取 图片)
如何入门 Python 爬虫
入门的话,我的经历:
1.先用python写一个爬取网页源代码的爬虫(最先是爬取个人博客,会遇到乱码问题当时困扰了很久)
2.后来写了爬取百度图片的程序,自动下载小说(我爱看小说-_-)(接触正则表达式)
3.然后百度图片他那种分页模式,拍中一般一页只有20张左右的图片,分析源代码,完善爬取程序,不受到限制,一次可以下几千张(图片有的是原图,有的是缩略冲贺歼图)
4.后来发现程序卡顿,就添加了多线程。
5.然后模拟登陆一散冲些不用验证码的网页(我学校的oj),cookie登陆B站(本来想写一个抢楼的脚本的,后来发现抢楼的被封号了-_-,就放弃了)
对于使用的库,python2 与 python3 有点不同,我学的是python3
先用的是urllib.request,后来用requests(第三方库),在后来接触Scrapy(也是第三方库)
现在因为事情多了,就把python放下了,准备寒假写一些脚本,毕竟python不会有期末考试...
我的个人经历,希望可以帮到你。
linux下python怎么写爬虫获取图片
跟linux有什么关系,python是跨平台的,爬取图片的代码如下:
import urllib.requestimport osimport randomdef url_open(url):
req=urllib.request.Request(url) ? ?#为请求设置user-agent,使得程旁兆序看起来更像一个人类
req.add_header('User-Agent'运穗租,'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0') ? ?#代理IP,使用户能以不同IP访问,从而防止被服务器发现
'''iplist=['1.193.162.123:8000','1.193.162.91:8000','1.193.163.32:8000']
proxy_support=urllib.request.ProxyHandler({'http':random.choice(iplist)})
opener=urllib.request.build_opener(proxy_support)
opener.addheaders=[('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.154 Safari/537.36 LBBROWSER')]
urllib.request.install_opener(opener)'''
response=urllib.request.urlopen(req)
html=response.read() ? ?return htmldef get_page(url):
html=url_open(url).decode('utf-8')
a=html.find('current-comment-page')+23
b=html.find(']',a) ? ?#print(html[a:b])
return html[a:b]def find_imgs(url):
html=url_open(url).decode('utf-8')
img_addrs=[]
a=html.find('img src=') ? ?while a!=-1:
b=html.find('.jpg',a,a+140) ? ? ? ?if b!=-1: ? ? ? ? ? ?if html[a+9]!='h':
img_addrs.append('http:'+html[a+9:b+4]) ? ? ? ? ? ?else:
img_addrs.append(html[a+9:b+4]) ? ? ? ?else:
b=a+9
a=html.find('img src=',b) ? ?for each in img_addrs:
print(each+'我的打印') ? ?return img_addrsdef save_imgs(folder,img_addrs):
for each in img_addrs: ? ? ? ?#print('one was saved')
filename=each.split('族锋/')[-1] ? ? ? ?with open(filename,'wb') as f:
img=url_open(each)
f.write(img)def download_mm(folder='ooxx',pages=10):
os.mkdir(folder)
os.chdir(folder)
url=""
page_num=int(get_page(url)) ? ?for i in range(pages):
page_num=page_num-1
page_url=url+'page-'+str(page_num)+'#comments'
img_addrs=find_imgs(page_url)
save_imgs(folder,img_addrs)if __name__=='__main__':
download_mm()1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
完成
运行结果
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)