python抓取动态网页(基于requests+multiprocessing+pyspider的方法-python抓取动态网页)

优采云 发布时间: 2021-11-04 19:01

  python抓取动态网页(基于requests+multiprocessing+pyspider的方法-python抓取动态网页)

  python抓取动态网页。今天介绍的是基于requests+multiprocessing+pyspider的方法。先来看效果:代码如下:#spider.pyimportrequestsfrommultiprocessingimportpoolfrompyspider.pagesimportmapdefurl_map(url,all_pages):try:r=requests.get(url)html=r.textreturnhtmlexceptexceptionase:return''response=pool.getresponse()returnresponse执行这个代码也非常简单:1.首先准备好请求路径和请求参数,请求函数我用的是get2.执行httpresponse对象的process方法,一边执行一边调用process方法的next方法,在一个请求被执行到底的时候next方法会被调用,完成接收返回值defnext(request):urls=requests.get(url).textreturnresponse.response(urls,"all_pages")这段代码我做了两点特别重要的事情:1.urls对象有了一个cookie参数cookie用来在请求的时候用来唯一标识一个url2.这时候获取到的url是一个整数,调用spider对象的get方法有返回值,而且返回值值为none(true返回的url是python自带的一个单例对象)我们来验证一下成功不。

  frompyspider.controllersimportdispatchexportfrompyspider.spiderimportspiderurl=""try:r=requests.get(url).textexceptexceptionase:return''#1.将网页文件拿出来frompyspider.exceptionsimportspiderexceptionspiderexception=spiderexception('scrapy:error:trier')spiderexception=spiderexception('scrapy:error:filenotfound')spiderexception=spiderexception('scrapy:error:directoryerror')reload(spiderexception)finally:spiderexception=spiderexception('scrapy:spiderexception')spiderexception=spiderexception('scrapy:spiderexception')returnspiderexception通过httpresponse对象的get方法获取文件名,同时也拿到了请求路径的cookie值#2.获取返回值defget_response(filename):html=requests.get(url).textreturnhtml#3.将请求路径转换为urlopen(r'?charset=utf-8',formdata={'user-agent':'mozilla/5.0(windowsnt6.1;win64;x64)applewebkit/537.36(khtml,likegecko)chrome/59.0.3024.132safari/537.36'})withopen(filename,'wt')asf:f.write(response.response(newheader="c。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线