手动爬虫之淘宝笔记本栏(ptyhon3)
1.这次爬虫用到了之前封装的Url_ProxyHelper类,源代码如下
import urllib.request as ur class Url_ProxyHelper:
def __init__(self, url, proxy_add, savepath=None):
self.url = url
self.proxy_add = proxy_add
self.req = None
self.proxy = None
self.opener = None
self.info = None
self.save_path = savepath # 报头代理设置
def set_UrlAndProxy(self):
# 添加报头
self.req = ur.Request(self.url)
self.req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0') # 设置代理服务器
self.proxy = ur.ProxyHandler({'http': self.proxy_add})
self.opener = ur.build_opener(self.proxy, ur.HTTPHandler)
ur.install_opener(self.opener)
return self.req # 数据存档
def save_InFile(self):
self.req = self.set_UrlAndProxy()
self.info = ur.urlopen(self.req).read()
open(self.save_path, 'wb').write(self.info) # 数据返回
def feedbak_info(self):
self.req = self.set_UrlAndProxy()
self.info = ur.urlopen(self.req).read().decode('utf-8') # decode()用来解码,特别是中文
return str(self.info)
2.爬取源代码:
import urllib.request as ur
import urllib.error as ue
from Url_ProxyHelper import Url_ProxyHelper
import re # 设置目标网址 quote()函数能够解决url中出现的中文所导致的一些解析问题
url = ur.quote("https://s.taobao.com/list?q=平板电脑&q=平板电脑&s=", safe='/:?=', encoding='utf-8')
# 设置存放路径
save_path = "E:/workspace/PyCharm/codeSpace/books/python_web_crawler_book/chapter6/demo2/images/"
# 设置代理服务器IP
proxy_add = "218.73.139.196:808" def craw(url, save_path, proxy_add,page):
url = url+str((page-)*)
# 调用Url_ProxyHelper封装类
uph = Url_ProxyHelper(url, proxy_add)
infos = uph.feedbak_info()
# 设置正则表达式 一般来讲先把这个实例拿出来,然后根据实例写通式
pattern = '\"(pic_url)\":\"(.+?\.jpg)'
infos = re.compile(pattern=pattern).findall(infos)
x =
for info in infos:
image_name = save_path+str(page)+"_"+str(x)+".jpg"
image_url = "http:"+info[]
try:
ur.urlretrieve(image_url, filename=image_name)
except ue.HTTPError as e:
if hasattr(e, 'code'):
print(e.code)
if hasattr(e, 'reason'):
print(e.reason)
except ue.URLError as e:
if hasattr(e, 'code'):
print(e.code)
if hasattr(e, 'reason'):
print(e.reason)
x += # 只爬取了第一页
craw(url, save_path, proxy_add, )
手动爬虫之淘宝笔记本栏(ptyhon3)的更多相关文章
- Python爬虫 获得淘宝商品评论
自从写了第一个sina爬虫,便一发不可收拾.进入淘宝评论爬虫正题: 在做这个的时候,也没有深思到底爬取商品评论有什么用,后来,爬下来了数据.觉得这些数据可以用于帮助分析商品的评论,从而为用户选择商品提 ...
- Python 爬虫知识点 - 淘宝商品检索结果抓包分析(续一)
通过前一节得出地址可能的构建规律,如下: https://s.taobao.com/search?data-key=s&data-value=44&ajax=true&_ksT ...
- python:爬虫获取淘宝/天猫的商品信息
[需求]输入关键字,如书包,可以搜索出对应商品的信息,包括:商品标题.商品链接.价格范围:且最终的商品信息需要符合:包邮.价格差不会超过某数值 #coding=utf-8 ""&q ...
- Python 爬虫知识点 - 淘宝商品检索结果抓包分析
一.抓包基础 在淘宝上搜索“Python机器学习”之后,试图抓取书名.作者.图片.价格.地址.出版社.书店等信息,查看源码发现html-body中没有这些信息,分析脚本发现,数据存储在了g_page_ ...
- [PHP] 编写爬虫获取淘宝网上所有的商品分类以及关键属性 销售属性 非关键属性数据
参考文章地址:https://blog.csdn.net/zhengzizhi/article/details/80716608 http://open.taobao.com/apitools/api ...
- 爬虫_淘宝(selenium)
总体来说代码还不是太完美 实现了js渲染网页的解析的一种思路 主要是这个下拉操作,不能一下拉到底,数据是在中间加载进来的, 具体过程都有写注释 from selenium import webdriv ...
- Python 爬虫知识点 - 淘宝商品检索结果抓包分析(续二)
一.URL分析 通过对“Python机器学习”结果抓包分析,有两个无规律的参数:_ksTS和callback.通过构建如下URL可以获得目标关键词的检索结果,如下所示: https://s.taoba ...
- 手动爬虫之糗事百科(ptyhon3)
一.调用封装的Url_ProxyHelper类,源码如下 import urllib.request as ur class Url_ProxyHelper: def __init__(self, u ...
- PYTHON 爬虫笔记十:利用selenium+PyQuery实现淘宝美食数据搜集并保存至MongeDB(实战项目三)
利用selenium+PyQuery实现淘宝美食数据搜集并保存至MongeDB 目标站点分析 淘宝页面信息很复杂的,含有各种请求参数和加密参数,如果直接请求或者分析Ajax请求的话会很繁琐.所以我们可 ...
随机推荐
- python相关性分析与p值检验
## 最近两天的成果 ''' ########################################## # # # 不忘初心 砥砺前行. # # 418__yj # ########### ...
- Service stopSelf(int statId)和onStartcommand(Intent intent,int flags,int startId)
Stopping a service A started service must manage its own lifecycle. That is, the system does not sto ...
- 在Linux下如何查CC攻击?
什么是CC攻击?CC攻击就是利用大量代理服务器对目标计算机发起大量连接,导致目标服务器资源枯竭造成拒绝服务.那么如何判断查询CC攻击呢?本文主要介绍了一些Linux下判断CC攻击的命令. AD:201 ...
- 如何借助Monit搭建服务器监控系统?(1)
许多Linux管理员依赖一种集中式远程监控系统(比如Nagios或Cacti),检查网络基础设施的健康状况.虽然集中式监控系统为管理员在处理许多主机和设备时简化了工作,但专用的监控设备显然成了单一故障 ...
- vivado设计四:自定义IP核测试
在vivado设计三中:http://blog.chinaaet.com/detail/37177已经建立了vivado工程和封装好了自定义IP核. 那么接下来,我们对这个自定义IP核进行测试了:我们 ...
- Oracle之批量生成数据
一.引言 由于测试程序,需要大量的数据 二.方法 1.pl/sql的Generate Data,在tool菜单中可以找到,但是我这里不能用,老是出现错误,应该是软件的原因,但是没找到解决办法,如下图: ...
- Bootstrap学习笔记(1)栅格系统
栅格系统: .row 1行12列 .col-md-3 占3列,一行就是4个 <!DOCTYPE html> <html lang="en"> <hea ...
- Extjs的完成按钮和位置
this.toolbar.add('->') ---重点是这个箭头,他是控制位置的 this.CompleteDataAction = new Ext.Action({ text : '完成', ...
- atn 编译java提示资源不足
今天用ant编译项目出现 [javac] 系统资源不足.的错误,如下 Buildfile: build.xml -compile: [javac] Compiling 919 source fi ...
- android6.0 adbd深入分析(二)adb驱动数据的处理、写数据到adb驱动节点
上篇博客最后讲到在output_thread中.读取了adb驱动的数据后.就调用write_packet(t->fd, t->serial, &p)函数,把数据网socket ...