最近想做一个微博的搜索页文本分析的小项目,因为开放平台里这个api的限制略多,决定进入爬虫坑自己动手.

之前久闻Scrapy大名,尝试了一下,抓取网页甚是好用,避免了许多HTTP方面的繁琐处理.不过还是卡在了登陆这一步上.

一般模拟登陆有两种方式,一个是抓登陆时的包,然后模拟所需数据发送过去.由于新浪经常改参数和加密方式,这个方法费时费力.另一种就是直接发送cookie.

在Scrapy中具体实现时,就是在爬取的spider类中,重载start_requests方法,生成一个带cookie的request,后续爬取的request同样需要带上cookie.

一个爬取单个搜索结果网页并存储的简单spider代码如下:

#coding = utf-8from scrapy.contrib.spiders import CrawlSpider
from scrapy.http import Requestclass WeiboSpider(CrawlSpider):name = 'weibo'allowed_domains = ['weibo.com', 'sina.com.cn']def start_requests(self):url = 'http://s.weibo.com/weibo/'+keyword+'?page=2' #keyword为需要搜索的关键词,此处加上page=2易于测试是否成功登陆,因为搜索结果第二页未登录时是看不到的print url

Scrapy中用cookie模拟登陆新浪微博相关推荐

  1. Scrapy框架的学习(10.Scrapy中的模拟登陆(使用cookie模拟登陆))

    1. 为什么需要模拟登陆? 获取cookie,能够爬取登陆后的页面的数据 2.使用cookie模拟登陆的场景 (1) cookie过期时间很长,常见于一些不规范的网站 (2) 能在cookie过期之前 ...

  2. 利用python爬虫(part15)--cookie模拟登陆

    学习笔记 文章目录 cookie模拟登陆 获取cookie 爬取我的简介 cookie模拟登陆 有的时候,我们想要抓取一个网站,但是需要先登录才能访问它,如果不输入用户名和密码,我们就会一直停留在登录 ...

  3. 分享:Python使用cookielib和urllib2模拟登陆新浪微博并抓取数据

    Python使用cookielib和urllib2模拟登陆新浪微博并抓取数据 http://my.oschina.net/leopardsaga/blog/94774

  4. PythonScript_003_通过Cookie模拟登陆人人网

    #!/usr/bin/env python # -*- coding:utf-8 -*-import urllib.request import http.cookiejar # 相当于Python2 ...

  5. pythonurllib微博登录怎么删_Python使用cookielib和urllib2模拟登陆新浪微博并抓取数据...

    我们都知道HTTP是无连接的状态协议,但是客户端和服务器端需要保持一些相互信息,比如cookie,有了cookie,服务器才能知道刚才是这个用户登录了网站,才会给予客户端访问一些页面的权限. 用浏览器 ...

  6. Python_模拟登陆新浪微博

    模拟网页登陆 1.下载http抓包软件Fiddler,打开后可以抓取到所有经过80端口的数据包 2.打开登陆新浪微博的界面,可以在Fiddler中看到相关的信息,查了一晚上的资料得知,新浪微博登陆主要 ...

  7. 微博登录记录pythonurllib_Python使用cookielib和urllib2模拟登陆新浪微博并抓取数据...

    我们都知道HTTP是无连接的状态协议,但是客户端和服务器端需要保持一些相互信息,比如cookie,有了cookie,服务器才能知道刚才是这个用户登录了网站,才会给予客户端访问一些页面的权限. 用浏览器 ...

  8. Python模拟登陆新浪微博

    本文转自:http://blog.csdn.net/andrewseu/article/details/48730735 前几天想在学校论坛上淘一个二手蓝牙鼠标,没有时间盯着论坛就写了Python程序 ...

  9. 使用selenium模拟登陆新浪微博

    1.selenium基本使用 1.selenium安装及基本操作 selenium是一个自动化测试工具,它支持各种浏览器,包括Chrome,Safari,Firefox等主流界面浏览器驱动,也包括Ph ...

最新文章

  1. LeetCode中等题之根据字符出现频率排序
  2. VS2013+OpenCV3.1.0配置方法
  3. haproxy,lvs keepalived || heartbeat,nginx对比
  4. Ansible自动化运维基础-------ploybook
  5. [PHP] 用JSON 传输图片源码
  6. 【VMCloud云平台】SCOM配置(四)-监控应用可用性
  7. matlab线性平面映射求通项_代数学发展史: 线性空间
  8. 汇编语言之标志寄存器
  9. IDEA插件之 CodeGlance
  10. spring mvc学习(28):get乱码解决
  11. Android:ListView
  12. 为什么C语言还是被很多人说成过时了?
  13. golang go语言_在Go语言中无需反思即可使用Lodash的好处
  14. keil5按F12调不出头文件中函数
  15. WeixinJSBridge目前还能够直接使用的功能(2019)
  16. linux批量创建和删除用户
  17. android 自定义组件 属性值,自定义组件之自定义属性
  18. 【杂谈】为了子孙后代,请不要逃离大城市或者龟缩在三四线小城市
  19. 小写字母转大写字母并输出ASCLL值
  20. linux之hugepage

热门文章

  1. 怎么做好网络营销推广?
  2. 微信小程序js如何动态设置css
  3. react+antd 自定义table单元格属性
  4. 郑州轻工业大学OJ-zznuoj-1008-美元和人民币
  5. xp系统支持64g内存_WindowsXP支持最多64G内存的工具震撼登场
  6. ASP.NET与前台交互--即后台.cs文件与前台.aspx文件交互
  7. 基于BiLSTM的酒店评论文本情感分析
  8. spdlog linux编译出错,c++日志库spdlog
  9. 知识点滴 - Unicode里的汉字结构描述符
  10. PostgreSQL 设置允许其他IP访问数据库