介绍
小编给大家分享一下如何使用python实现爬取图书封面,希望大家阅读完这篇文章之后都有所收获、下面让我们一起去探讨吧!
具体内容如下
<强> kongfuzi。py 强>
利用更换代理ip,延迟提交数据,设置请求头破解网站的反爬虫机制
import 请求 import 随机 import 时间 , , class 下载(): def 才能__init__(自我): ,,,self.ip_list =, [& # 39; 191.33.179.242:8080& # 39;,, & # 39; 122.72.108.53:80& # 39;,, & # 39; 93.190.142.214:80& # 39;,, & # 39; 189.8.88.125:65301& # 39;, ,,,,,,,,,,,& # 39;36.66.55.181:8080& # 39;,,& # 39;170.84.102.5:8080& # 39;,,& # 39;177.200.72.214:20183& # 39;,,& # 39;115.229.115.190:9000& # 39;】 , ,,,self.user_agent_list =, ( ,,,,,& # 39;用户代理:Mozilla/5.0,(麦金塔电脑,,你,,Intel Mac OS X 10 _6_8;, en - us), AppleWebKit/534.50, (KHTML, like 壁虎),版本/5.1,Safari/534.50 & # 39; ,,,,,& # 39;用户代理:Mozilla/5.0, (Windows;,你,,Windows NT 6.1;, en - us), AppleWebKit/534.50, (KHTML, like 壁虎),版本/5.1,Safari/534.50 & # 39; ,,,,,& # 39;用户代理:,Mozilla/5.0, (Macintosh;, Intel Mac OS X 10 _7_0), AppleWebKit/535.11, (KHTML, like 壁虎),Chrome/17.0.963.56 Safari/535.11 & # 39; ,,,) , def 才能得到(自我,url,代理=没有,超时=20,,num=5): ,,,print(“正在请求% s", %, url) ,,,UA =, random.choice (self.user_agent_list) ,,,headers =,{& # 39;用户代理# 39;:,UA} , ,,,if proxy ==,没有: ,,,,,试一试: ,,,,,,,return requests.get (url,标题=头,超时=超时) ,,,,,除了: ,,,,,,,if num 祝辞,0: ,,,,,,,,,time . sleep (10) ,,,,,,,,,return self.get (url, num=num 作用;1) ,,,,,,,其他的: ,,,,,,,,,time . sleep (10) ,,,,,,,,,IP =, & # 39; & # 39; . join (random.choice (self.ip_list) .strip ()) ,,,,,,,,,proxy =, {& # 39; http # 39;:, IP} ,,,,,,,,,return self.get (url,,=代理,代理,超时=超时) ,,,: ,,,,,试一试: ,,,,,,,IP =, & # 39; & # 39; . join (random.choice (self.ip_list) .strip ()) ,,,,,,,proxy =, {& # 39; http # 39;:, IP} ,,,,,,,return requests.get (url,标题=头,,=代理,代理,超时=超时) ,,,,,除了: ,,,,,,,if num 祝辞,0: ,,,,,,,,,time . sleep (10) ,,,,,,,,,IP =, & # 39; & # 39; . join (random.choice (self.ip_list) .strip ()) ,,,,,,,,,proxy =, {& # 39; http # 39;:, IP} ,,,,,,,,,印刷(“正在更换代理“) ,,,,,,,,,印刷(“当前代理% s", %,代理) ,,,,,,,,,return self.get (url,,=代理,代理,num=num 作用;1)
<强>主要。py 强>
将爬取的图片保存到本地,然后展示到界面
import kongfuzi import 操作系统 import 请求 import bs4 得到tkinter import * 得到PIL import 形象,ImageTk , , #,下载图片,生成图片地址列表和图书信息列表 def 下载(): baseUrl =,才能“http://search.kongfz.com" 时间=keyword 才能;e1.get () url 才能=,baseUrl +,“product_result/?选择=0,关键=?,关键字 打印才能(“下载链接:“,+,url) 显示(url)才能 , , #,bs4处理 def changesoup (html): htm 才能=html.content html_doc 才能=,str (htm, & # 39; utf - 8 # 39;) 时间=soup 才能;bs4.BeautifulSoup (html_doc,“html.parser") return 才能;汤 , , #,图书信息集合 def bookinfo(汤): #,才能图书价格列表 时间=price 才能;[] null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null如何使用python实现爬取图书封面