为什么scrapy框架在登录和未登录情况下两种爬取方式

优采云 发布时间: 2021-07-23 04:02

  为什么scrapy框架在登录和未登录情况下两种爬取方式

  文章采集发布一般分为两种方式:爬虫抓取,页面调用采集,前者可以用抓包工具如迅雷等进行抓取;后者可以采用搜索引擎如baidu.js等调用网页,又可分为模拟搜索功能的模拟器,和单页抓取。未登录状态下,单页抓取可以单页抓取(scrapy)也可以复杂一点的多页抓取(scrapymultipart)。scrapy使用scrapyshell连接采集到的内容。

  scrapy框架可以将采集到的request进行合并等操作。如果没有登录过,网页的scrapy框架是不允许读取登录信息的。举个例子:普通的登录是:scrapy.spider("/sitemap/extractapids/extractapids",mode="post")multipart=scrapy.multipart()#单页登录scrapy.spider("/sitemap/extractapids/extractapids",mode="post")但实际上只要多个页面同时启动scrapy都是可以的,因为extractapids,extractapids.action是post类型的参数(因为之前我写scrapy框架时用的seajs框架,其中的scrapy.spiderstore.action是action类型)。

  这里,我写这个问题只是为了让读者能够有一个直观的概念,为什么scrapy框架在登录和未登录情况下两种爬取方式可以这么采集,但是依然需要一些注意事项。一、登录过程无论是scrapy框架,还是其他爬虫框架,一般还都是两种模式:模拟登录,提交参数,获取返回值对于登录过程,常用的有五种方式:(三种对应三种scrapy框架)1.scrapy根据user_agent找到对应的登录请求:比如scrapygenspiderburptcptosendaccess_token为getpost的ip访问问号登录需要做如下修改#为scrapy框架配置spiders配置登录请求defgetspider(request):response=scrapy.spider(request,spider.items)returnresponsedefscrapy_spider_start(request):spiders=[]forspiderinspiders:spider.items.append(request.meta["scheme"])#解析extractapids参数(用来抓取特定链接)defgetspider_add(request):response=scrapy.spider(request,spider.items)returnresponsedefscrapy_spider_stop(request):spiders=[]forspiderinspiders:ifspider.items["token"]!=u'':spider.spider(request,spider.items["token"])#解析extractapids参数defgetspider_post(request):response=scrapy.spider(request,spider.items)returnresponsedefgetspider_add(request):response=。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线