付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
法律
本课件包括:演示文稿,示例,代码,题库,和声音等,小象学院拥有完全知识的权利;只限于善意学习者在本课程使用,不得在课程范围外向任何第散播。任何其他人或机构不得盗版、创意, 保留一切通过法律、仿造其中的者的权利。
课程咨询:小象:ChinaHadoop互联网新技术教育领航者分布式爬虫互联网新技术教育领航者大纲表单及登录多线程及语言分析对比多进程爬虫互联网新技术教育领航者表单及登录互联网新技术教育领航者HTML
提交数据form
表单<form><input
type="text"name=”username"></form>,由浏览器实现POST方法HTML
的ajax
请求$.(ajax){}基于ajax技术,异步发送http请求并获得返回数据,然后利用JavaScript对网页进行处理互联网新技术教育领航者HTML
表单<form></form>
tag
包围里面包含了表单的元素:<select><textarea><input>等输入框<input>type
包含了多种输入类型,例如:<input
type=“text”name=“name”>文本输入框<input
type=“password”
name=“password”><input
type=“submit”value=“Submit”>提交按钮互联网新技术教育领航者表单类型:form-dataPOST
/start.htm
HTTP/1.1Host:
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Accept-Language:
,en-US;q=0.8,en;q=0.6Content-Type:
multipart/form-data;
boundary=----WebKitFormBoundary7MA4YWxkTrZu0gWCache-Control:
no-cache-WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition:
form-data;
name="name”chacha-WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition:
form-data;
name="password”chinahadoop-WebKitFormBoundary7MA4YWxkTrZu0gW--互联网新技术教育领航者表单类型form-datahttp请求中的multipart/form-data,它会将表单的数据处理为一条消息,以
为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型。由于有boundary,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。x-www-form-urlencodedapplication/x-www-from-urlencoded,会将表单内的数据转换为键值对互联网新技术教育领航者表单类型:form-dataPOST
/start.htm
HTTP/1.1Host:
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Accept-Language:
,en-US;q=0.8,en;q=0.6Content-Type:
multipart/form-data;
boundary=----WebKitFormBoundary7MA4YWxkTrZu0gWCache-Control:
no-cache-WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition:
form-data;
name="name”chacha-WebKitFormBoundary7MA4YWxkTrZu0gWContent-Disposition:
form-data;
name="password”chinahadoop-WebKitFormBoundary7MA4YWxkTrZu0gW--互联网新技术教育领航者表单类型:x-www-form-urlencodedPOST
/start.htm
HTTP/1.1Host:
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'content-type':
"application/x-www-form-urlencoded",Cache-Control:
no-cachename=chachsword=chinahadoop互联网新技术教育领航者ajax
登录POST
/start.htm
HTTP/1.1Host:
Accept:
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8Cache-Control:
no-cache{"name":"chacha",
"password":"chinahadoop"}一般以json
的方式提交数据互联网新技术教育领航者登录根据chrome
inspector
里检查到的参数,来设置登录方式最常用的是x-www-form-urlencoded
和json方式,两种方式只是body编码不同如果是form-data,按照form-data的方式组合bodybody
部分经常需要按照特定的方式编码,比如base64,或者md5对于非常复杂的登录协议,利用第5章的
页方式登录request
=
urllib2.Request(url,
data,
headers
=
loginheaders
)url
是 的地址data
是body
部分headers=loginheaders
是HTTP请求的HEADER
数据互联网新技术教育领航者表单登录import
urllib2url
=headers
=
{'host':
"jc.lo",'connection':
"keep-alive",'cache-control':
"no-cache",'content-type':
"application/x-www-form-urlencoded",'upgrade-insecure-requests':
"1",'accept-language':
"
,en-US;q=0.8,en;q=0.6",}data
=
{'name':'caca',
"password":'c'}payload
=
urllib.urlencode(data)request
=
urllib2.Request(url,
payload
,
headers=headers)response
=
urllib2.urlopen(request)互联网新技术教育领航者获取并设置登录的是为了获得登录成功后,HEADER
会有设置的相关信息Set-Set-Set-:main[UTMPKEY]=1381959;
path=/;:main[UTMPNUM]=14820;
path=/;:main[UTMPUSERID]=abc;
path=/;=.=.=.此时我们需要把服务器返回的的
里信息,写入到我们后续请求的HEADER互联网新技术教育领航者意外??当遇到网页登录后,返回302跳转的情况下,urllib2
的Response
会丢失Set-
的信息,导致登录不成功更通常的情况下,我们需要一个通用的能处理的工具请求自动处理Set-自动处理管理过期自动在对应的域下发送特殊互联网新技术教育领航者使用urllib2
的插件功能urllib2
可以绑定一系列的处理对象handler,hanlder
可以对urllib2
的http请求提供额外的功能支持。handler是以绑定的顺序依次调用的。例如
HTTPRedirectHandler
用来处理跳转的情况,ProxyHandler
用于处理。可以开发自定义的handler
(从BaseHandler继承)build_opener([handler,...])#
一系列的handlerproxy_handler
=
urllib2.ProxyHandler({'http':
'http
:3128/'})proxy_auth_handler
=
urllib2.ProxyBasicAuthHandler()proxy_auth_handler.add_password('realm',
'host',
'username',
'password')opener
=
urllib2.build_opener(proxy_handler,proxy_auth_handler)#
This
time,
rather
than
install
the
OpenerDirector,
we
use
it
directly:opener.open('http
/login.html')互联网新技术教育领航者Jarimportlibcj
=
lib. Jar()
#创建
Jar
对象opener=urllib2.build_opener(urllib2.HTTP Processor(cj))#
插件request
=
urllib2.Request(url,
payload,headers=headers)response
=
opener.open(request)print
response.items()#打印headers信息print
response.read()#打印返回的网页#打印forprint内容in
cj:.name,.value,.互联网新技术教育领航者多线程爬虫互联网新技术教育领航者多线程互联网新技术教育领航者多线程的复杂性资源、数据的安全性:锁保护原子性:数据操作是天然互斥的同步等待:wait()notify()notifyAll()死锁:多个线程对资源互锁,造成死锁容灾:任何线程出现错误,整个进程都会停止互联网新技术教育领航者多线程的优势内存空间共享,信息效率高提高CPU的使用效率开发便捷轻,创建、销毁的开销小互联网新技术教育领航者Python
线程支持多线程(Javascript
PHP不支持多线程)python
线程直接 到
native
线程
(Java
1.4
的
Java线程是JVM实现的,共同运行在一个native
thread)GIL
(Global
Interpretor
Lock):对于多核的利用能力有限互联网新技术教育领航者实现一个多线程爬虫创建一个线程池threads=[]确认url
队列线程安全Queue
Deque从队列取出url,分配一个线程开始爬取pop()/get()threading.Thread如果线程
了,循环等待,直到有线程结束
t.is_alive()从线程池移除已经完成
的线程
threads.remove(t)如果当前级别的url已经遍历完成,t.join()函数等待所有现场结束,然后开始下一级别的爬取互联网新技术教育领航者多线程爬虫评价优势:的速有效利用CPU时间极大减小 出错、阻塞对抓取速度的影响,整体上提高对于没有反爬虫限制的
,
速度可以多倍增加局限性:对于有反爬的
,速度提升有限提高了复杂度,对编码要求更高线程越多,每个线程获得的时间就越少,同时线程切换更频繁也带来额外开销线程之间资源竞争更激烈互联网新技术教育领航者多进程爬虫互联网新技术教育领航者线程与进程互联网新技术教育领航者线程与进程互联网新技术教育领航者多进程爬虫评估目的:控制线程数量对线程进行
,减少资源竞争某些环境下,在单机上利用多个IP来局限性:不能突破网络瓶颈单机单IP的情况下,变得没有意义的代价更大互联网新技术教育领航者进程间通信管道(PIPE)信号(Signal):复杂消息队列:Posix
及systemV共享内存:速度最快,需要结合信号量达到进程间同步及互斥信号量:用于数据同步Socket:可以标准化,可以用于多机互联网新技术教育领航者Android
进程间通信Binder互联网新技术教育领航者Android
进程间通信AIDL互联网新技术教育领航者创建多进程爬虫SolutionA–C/S模式一个服务进程,入队及出队URL,入队需检查是否已经目前的爬取状态、进度多个爬取进程,从服务进程获取URL,并将新的URL返回给服务进程使用Socket来做IPCSolutionB–数据库模式使用数据库来读写爬取列表多个爬取进程,URL
的获取与增加都通过数据库操互联网新技术教育领航者C/S
v.s.数据库CS
优势:运行速度快,添加、修改、查询都是内存的BIT位操作扩展方便,例如动态URL队列重拍数据库:开发便捷,数据库天生具备读写保护及支持IPC只需要写一个爬虫程序互联网新技术教育领航者创建MySQL
数据库表KeyTypeDescriptionindexint(11)PRIMARY
KEY
AUTOINCREMENTu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 超市应急预案十九篇
- 医患关系的两面性
- 昆铁机务乘务考试题及答案
- 血液透析院感防控试题及答案
- 2025年临床执业医师《外科学》试卷
- 药品陈列管理规范培训试题及答案
- 医保异地就医服务规范考核试题及答案
- 医患矛盾源头预防管控制度
- 维修安全培训试题及答案
- 工程机械2-工程机械内燃机与底盘
- 2026年包头轻工职业技术学院单招综合素质考试题库附答案详解(基础题)
- 2026年当辅警笔试题库及一套完整答案
- 2026年兴安职业技术学院单招职业倾向性测试题库及答案详解(新)
- 国家基层糖尿病防治管理指南(2025版)
- 2025年国企招聘考试(建筑工程及造价)经典试题及答案
- (2026)中华人民共和国海关注册登记和备案企业信用管理办法解读课件
- 2025CSCO胰腺癌诊疗指南课件
- 慈善基金会内控制度
- DB15∕T 385-2025 行业用水定额
- 内镜黏膜下剥离术(esd)相关指南,共识
- 2026年唯实小学党支部工作计划
评论
0/150
提交评论