爬虫
文章平均质量分 89
Mr.Bean-Pig
这个作者很懒,什么都没留下…
展开
-
Windows环境下python爬虫常用库和工具的安装(UrlLib、Re、Requests、Selenium、lxml、Beautiful Soup、PyQuery 、PyMySQL等等)
本文列举了使用python进行爬虫时所需的常用库和工具的安装过程,简单明了。原创 2018-10-14 17:13:23 · 17805 阅读 · 4 评论 -
如何用Flask和Redis来动态维护Cookies池
为什么要用Cookies池目标网站需要登录才能爬取,例如新浪微博。爬取过程中,如果请求频率过高,会导致封号。这就需要维护多个账号的Cookies池实现大规模爬取。Cookies池的要求自动登录更新定时验证筛选提供外部接口Cookies池的架构首先,需要有一个账号队列,把一些账号密码存到数据库里,生成器即程序从队列里面拿出账号密码,自动地进行登录,并获取登录的Cookie...原创 2018-11-07 09:26:59 · 774 阅读 · 0 评论 -
抓取微信文章:使用代理来处理反爬虫措施
目标网站分析我们将从搜狗-微信这个网址来爬取微信的文章。https://weixin.sogou.com/输入“程序员”并搜索:可以看到上方的URL有许多的信息,我们只保留query、type、page这几个参数即可。修改page可以实现翻页。ps:登录后才能查看第10页之后的内容打开审查->Network->勾选Preserve,然后疯狂翻页,不久后就会跳转到这样的...原创 2018-11-04 21:34:54 · 3338 阅读 · 0 评论 -
Scrapy框架的安装(windows)
首先在命令行测试一下:这说明scrapy框架还没有安装。由于主要使用pip安装,所以我们先检查一下:第一步:安装wheelpip install wheel第二步:安装 lxmlhttp://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml下载好以后,把路径复制一下:然后使用pip install + 路径 进行安装第三步:安装pyOp...原创 2018-11-12 21:36:18 · 740 阅读 · 0 评论 -
实例演示Scrapy的基本用法
Scrapy是一个非常强大的异步爬虫框架,里边已经写好了许许多多的组件,有了它,就可以只关心爬虫的逻辑了。本文通过一个项目,梳理一遍流程,以此来大致了解scrapy的原理和用法。目标站点分析http://quotes.toscrape.com/这是scrapy官方提供的一个抓取网站,主要显示了一些名人名言,以及作者、标签等等信息。点击页面底端的next翻页后,可以看到page变为2:...原创 2018-11-20 23:55:42 · 905 阅读 · 0 评论 -
Scrapy命令行详解
官方文档1.创建项目:scrapy startproject myproject [project_dir]这将在project_dir目录下创建一个Scrapy项目。如果project_dir没有指定,project_dir将与myproject同名。接下来,进入新项目目录:cd project_dir2.创建爬虫scrapy genspider mydomain mydo...原创 2018-11-23 19:45:59 · 2576 阅读 · 0 评论 -
Scrapy中选择器的用法
本文介绍Scrapy中选择器的用法。可以通过官方文档获取更为详细的内容。简介在抓取网页时,爬虫需要执行的最常见任务是从HTML源提取数据。有几个库可用于实现此目的:BeautifulSoup是Python程序员中非常流行的Web抓取库,它根据HTML代码的结构构造一个Python对象,并且合理地处理坏标记,但它有一个缺点:它很慢。lxml是一个XML解析库(也可以解析HTML),它使...原创 2018-11-24 18:59:19 · 2148 阅读 · 1 评论 -
Scrapy中Spiders的用法
本文来自官方文档包括Spiders的简介、一些参数的实例讲解和一些例子。SpidersSpider类定义了如何爬取某个(或某些)网站。包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item)。 换句话说,Spider就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方。对spider来说,爬取的循环类似下文:以初始的URL初始化Request,...原创 2019-03-26 20:48:05 · 2208 阅读 · 0 评论 -
python Scrapy的spider中回调函数的多个参数传递方法
https://blog.csdn.net/Homewm/article/details/83054326转载 2019-04-04 19:26:50 · 522 阅读 · 0 评论 -
Scrapy中Download Middleware(下载器中间件)用法
下载器中间件是介于Scrapy的request/response处理的钩子框架。 是用于全局修改Scrapy request和response的一个轻量、底层的系统。Download Middleware在框架中的位置下面用实例来演示Download Middleware的用法。我们新建一个项目,目标就是常用的测试网址httpbin.org。在命令行中依次输入以下命令并用pycharm打...原创 2019-03-27 16:59:08 · 974 阅读 · 0 评论 -
如何用Flask和Redis来动态维护代理池
我们在爬虫时可能会遇到封IP的问题,那么利用代理就可以进行IP的伪装,然后进行爬虫的请求。我们有时会需要非常多的ip,那么维护一个代理池(代理的队列,可以存入或取出),需要对整个池进行定期的检查和更新,以此来保证代理的高质量(也就是代理的检测和筛选),以免对爬虫产生影响。Redis主要给代理池提供一个队列存储。Flask用来实现代理池的接口。为什么要用代理池?许多网站有专门的反爬虫措施,可...原创 2018-11-04 10:14:12 · 905 阅读 · 0 评论 -
使用Selenium+Chrome/PhantomJS抓取淘宝“美食”详解
准备工作淘宝的页面是相当复杂的,含有各种请求参数或是加密参数,如果直接请求或者分析Ajax将十分繁琐。Selenium是一个自动化测试工具,可以驱动浏览器完成各种操作,比如模拟点击、输入、下拉等等,这样我们只需要关心操作,而不再需要关心后台发生了什么请求。Chrome是一个常用浏览器。PhantomJS是一个无界面浏览器(可以在不打开浏览器界面的情况下完成爬取)。本次将要爬取的是淘宝“美...原创 2018-11-01 22:19:50 · 610 阅读 · 0 评论 -
用Requests和正则表达式爬取豆瓣图书TOP250
思路和上文大同小异。import requestsfrom requests.exceptions import RequestExceptionimport reimport jsonheaders = {'User-Agent':'Mozilla/5.0(Macintosh;Intel Mac OS X 10_11_4)AppleWebKit/537.36(KHTML,like ...原创 2018-10-24 13:02:37 · 1601 阅读 · 0 评论 -
爬虫的原理(基本流程,Request与Response,怎么解决JavaScript渲染的问题,怎么保存数据)
什么是爬虫?爬虫就是请求网站并提取数据的自动化程序。爬虫基本流程1.发起请求:通过HTTP库向目标站点发起请求,即发送一个Request,请求可以包含额外的headers等配置信息,等待服务器响应。2.获取响应内容:如果服务器能正常响应,会得到一个Response,其中的内容便是所要获取的页面内容,类型可能有HTML,Json字符串,二进制数据(如图片视频)等类型。3.解析内容:得到的内...原创 2018-10-15 17:15:59 · 3372 阅读 · 0 评论 -
Urllib库的详解(urlopen,response,request,Headler,异常处理,URL解析)
简介Urllib是Python内置的HTTP请求库。它包含四个模块:urllib.request :请求模块urllib.error :异常处理模块urllib.parse url : 解析模块urllib.robotparser :robots.txt解析模块,用的比较少相比Python2变化:Python2: import u...原创 2018-10-15 23:45:47 · 12042 阅读 · 0 评论 -
使用Requests库来进行爬虫的详解
Requests是用Python编写,基于urllib,采用Apache2 Licensed开源协议的HTTP库。它比urllib更方便,可以节约我们大量的工作,完全满足HTTP测试需求。安装:pip3 install requests使用实例:import requestsresponse=requests.get('https://www.baidu.com')print(ty...原创 2018-10-17 16:52:53 · 19772 阅读 · 1 评论 -
PyQuery库使用详解
PyQuery是强大而又灵活的网页解析库,如果你觉得正则写起来太麻烦,又觉得BeautifulSoup语法太难记,如果你熟悉jQuery的语法那么,PyQuery就是你绝佳的选择。安装:pip3 install pyquery一、初始化下面介绍三种初始化PyQuery的方法。1.字符串初始化html = '''<div> <ul> &l...原创 2018-10-22 20:19:50 · 1820 阅读 · 0 评论 -
Selenium使用详解
Selenium是一个自动化测试工具,支持多种浏览器。它采用Javascript单元测试工具JSUnit为核心,模拟真实用户操作,包括浏览页面、点击链接、输入文字、提交表单、触发鼠标事件等等,并且能够对页面结果进行种种验证。也就是说,只要在测试用例中把预期的用户行为与结果都描述出来,我们就得到了一个可以自动化运行的功能测试套件。(Selenium的核心是Javascript写的,他和浏览器进行通信...原创 2018-10-22 23:39:17 · 1556 阅读 · 0 评论 -
Python中常用的正则表达式
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。(非python独有,但是python的re模块提供了实现,在python中写正则表达式几乎都用这个库)样例展示这里要用到在线正则表达式测试。右侧是常用的正则表达式,可以从待匹配的文本中匹配到相应的结果。使用方法常用的匹配规...原创 2018-10-20 22:19:47 · 1339 阅读 · 0 评论 -
通过分析Ajax请求抓取【今日头条】“街拍”美图
有一些网页直接请求得到的HTML代码并没有在网页中看到的内容,因为一些信息是通过Ajax加载,并通过js渲染生成的,这时就需要通过分析网页的请求来获取想要爬取的内容。本文通过抓取今日头条街拍美图讲解一下具体操作步骤。网络库:Requests解析库:BeautifulSoup+正则表达式存储数据库:MongoDB其他库:PyMongo请确保以上库已经正确安装。目标站点分析打开今日头条...原创 2018-10-28 16:47:21 · 411 阅读 · 0 评论 -
BeautifulSoup库使用详解
BeautifulSoup库是灵活又方便的网页解析库,处理高效,支持多种解析器。利用它不用编写正则表达式即可方便地实现网页信息的提取。安装:pip3 install beautifulsoup4解析库 解析器 使用方法 优势 劣势 Python标准库 BeautifulSoup(markup, “...原创 2018-10-21 20:46:56 · 20062 阅读 · 0 评论 -
用Requests和正则表达式爬取猫眼电影(TOP100+最受期待榜)
目标站点分析如图,猫眼电影的翻页offset明显在URL中,所以只要搞定第一页的内容加上一个循环加上offset就可以爬取前100。流程框架1、抓取单页内容利用requests请求目标站点,得到单个网页HTML代码,返回结果。2、正则表达式分析根据HTML代码分析得到电影的排名、地址、名称、主演、上映时间、评分等信息。3、保存至文件通过文件的形式将结果保存,每一部电影一个结果一...原创 2018-10-23 21:28:20 · 2564 阅读 · 0 评论 -
Scrapy实战:爬取知乎用户信息
思路:从一个用户(本例为“张佳玮”)出发,来爬取其粉丝,进而爬取其粉丝的粉丝…先来观察网页结构:审查元素:可以看到用户“关注的人”等信息在网页中用json格式保存在data中。当把鼠标移到列表中的某个名字上时,可以看到浏览器产生了一个Ajax请求:请求的url后面加上了很长的一串查询字符串。并且json中也请求了许多详细的信息。这与该用户的主页基本是对应的:实战我们...原创 2019-03-28 17:44:04 · 1575 阅读 · 3 评论