python爬虫
文章平均质量分 79
Kosmoo
最有用的语言是English,其次可能是Python
展开
-
python下selenium如何处理日期控件的几种方法
参考文章:https://blog.csdn.net/huilan_same/article/details/52385401# -*- coding: utf-8 -*-from selenium import webdriverfrom time import sleepdriver = webdriver.Firefox()driver.get('http://ww...原创 2018-07-09 18:58:36 · 14307 阅读 · 1 评论 -
python3下使用requests模拟用户登录 —— 中级篇(百度云俱乐部)
python3下使用requests模拟用户登录 —— 中级篇(百度云俱乐部)1. 背景建议先看一下初级篇,了解一些爬虫模拟登录的基本常识: python3下使用requests实现模拟用户登录 —— 初级篇(马蜂窝):https://blog.csdn.net/zwq912318834/article/details/79571110 2. 环境系统:win7p...原创 2018-03-23 12:29:52 · 6335 阅读 · 0 评论 -
python3下使用scrapy实现模拟用户登录与cookie存储 —— 基础篇(马蜂窝)
python3下使用scrapy实现模拟用户登录与cookie存储 —— 基础篇(马蜂窝)1. 背景相关基础知识点回顾: python3下使用requests实现模拟用户登录(马蜂窝): http://blog.csdn.net/zwq912318834/article/details/795711102. 环境系统:win7python 3.6.1scrapy 1...原创 2018-03-19 17:09:52 · 10434 阅读 · 1 评论 -
如何使用scrapy中的ItemLoader提取数据?
如何使用scrapy中的ItemLoader提取数据?1. 简述我们在用scrapy爬取数据时,首先就要明确我们要爬取什么数据。scrapy提供了Item对象这种简单的容器,我们可以通过Item定义提取数据的格式,需要爬取哪些字段,其提供了类似于字典的API以及用于声明可用字段的简单语法。如下所示:下面以爬取伯乐在线文章详情页为范例:http://blog.jobbole.com/...原创 2018-03-12 18:32:28 · 14384 阅读 · 6 评论 -
手机抓包工具Fidder的使用:环境搭建篇
手机抓包工具Fidder的使用:环境搭建篇1.概述Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件,这些都可以让你胡乱修改的意思)。 Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。...原创 2018-03-02 11:57:12 · 4030 阅读 · 0 评论 -
python3下使用requests实现模拟用户登录 —— 基础篇(马蜂窝)
python3下使用requests实现模拟用户登录 —— 基础篇(马蜂窝)1. 了解cookie和session首先一定要先了解到cookie和session是什么,这是后面理解网站交互,模拟用户登录的基础。1.1. 无状态协议:Http如上图所示,HTTP协议 是无状态的协议,用户浏览服务器上的内容,只需要发送页面请求,服务器返回内容。对于服务器来说,并不关心,也...原创 2018-03-15 17:20:17 · 133230 阅读 · 67 评论 -
scrapy爬虫的搭建过程(实战篇)
scrapy爬虫的搭建过程(实战篇)1. 爬虫功能以 http://bbs.fengniao.com/forum/forum_125_1_lastpost.html 为起始页,爬取前十页的信息,包括文章的标题、链接地址和图片地址,保存到mongodb中。并下载对应的图片到本地目录。 2. 环境系统:win7Scrapy 1.4.0mongodb v3.2pyt...原创 2018-02-08 14:40:25 · 5639 阅读 · 1 评论 -
关于scrapy爬虫使用的一些小经验和注意事项
关于scrapy爬虫使用的一些小经验和注意事项1. 图片下载的设置class ClawernameSpider(scrapy.Spider): # 定制化设置 custom_settings = { 'LOG_LEVEL': 'DEBUG', # Log等级,默认是最低级别debug 'ROBOTSTXT_OBEY': False,原创 2017-11-29 15:45:42 · 24767 阅读 · 3 评论 -
python + selenium + chrome 如何打开新窗口,并实现窗口切换
python + selenium + chrome 如何打开新窗口,并实现窗口切换1. 背景在使用selenium时,经常会有打开一个新的窗口的需求,下面会提供几种窗口切换的思路。2. 环境python 3.6.1系统:win7IDE:pycharm安装过chrome浏览器配置好chromedriverselenium 3.7.03. 代码:打开原创 2018-01-30 16:15:14 · 24004 阅读 · 0 评论 -
python + selenium + chrome 在实现back,forward,refresh时的注意事项
python + selenium + chrome 在实现back,forward,refresh时的注意事项1. 背景在使用selenium模拟浏览器时,经常会使用到导航栏的三个按钮:后退,前进,刷新。来达到在浏览过的页面之间进行切换。对应到selenium中的方法分别是:back(),forward(), refresh() 。但是如果直接使用之前定位到的元素,会出现一个问题,那原创 2018-02-06 11:15:27 · 5239 阅读 · 0 评论 -
selenium+python设置爬虫代理IP
selenium+python设置爬虫代理IP1. 背景在使用selenium浏览器渲染技术,爬取网站信息时,一般来说,速度是很慢的。而且一般需要用到这种技术爬取的网站,反爬技术都比较厉害,对IP的访问频率应该有相当的限制。所以,如果想提升selenium抓取数据的速度,可以从两个方面出发:第一,提高抓取频率,出现验证信息时进行破解,一般是验证码或者用户登录。第二,使用多线程原创 2017-11-24 17:35:51 · 117875 阅读 · 9 评论 -
selenium + python处理select标签下拉框的选项
selenium + python处理select标签下拉框的选项1. 背景在爬取网页是,有时候我们会遇到下图中的下拉框,也就是 标签。按照一般的点击方案是无法成功的,而selenium提供了专门的Select类来处理这种下拉框。 2. 环境python 3.6.1系统:win7IDE:pycharm安装过chrome浏览器配置好chromedrivers原创 2018-01-29 17:04:32 · 17193 阅读 · 2 评论 -
网络请求分析实战篇(01)—— 爬取amazon搜索栏的关联关键词
网络请求分析实战篇(01)—— 爬取amazon搜索栏的关联关键词1. 需求介绍在amazon搜索商品,当输入部分单词时,下面会自动弹出一些关联关键词。这些关键词是amazon内部总结,统计的热门搜索关键词。我们现在的需求就是,给出一些关键词,然后把对应的关联关键词抓出来。 2. 环境系统:win7python 3.6.1requests 2.14.2 (通过pip...原创 2018-03-29 17:58:37 · 8745 阅读 · 0 评论 -
python3下使用scrapy实现模拟用户登录与cookie存储—— 中级篇(百度云俱乐部)
python3下使用scrapy实现模拟用户登录与cookie存储—— 中级篇(百度云俱乐部)1. 背景相关基础知识点回顾: python3下使用requests模拟用户登录 —— 中级篇(百度云俱乐部):https://blog.csdn.net/zwq912318834/article/details/79665863python3下使用scrapy实现模拟用户登录与coo...原创 2018-03-25 23:44:33 · 5906 阅读 · 0 评论 -
如何在scrapy中集成selenium爬取网页
如何在scrapy中集成selenium爬取网页1.背景我们在爬取网页时一般会使用到三个爬虫库:requests,scrapy,selenium。requests一般用于小型爬虫,scrapy用于构建大的爬虫项目,而selenium主要用来应付负责的页面(复杂js渲染的页面,请求非常难构造,或者构造方式经常变化)。在我们面对大型爬虫项目时,肯定会优选scrapy框架来开发,但是在解...原创 2018-04-03 16:30:21 · 24301 阅读 · 11 评论 -
如何去除网页噪声提取数据(01) —— 去哪儿网
如何去除网页噪声提取数据(01) —— 去哪儿网1. 需求介绍今天的目标是爬取 “去哪儿网” 上的数据信息,去哪儿网上的数据是非常珍贵的,所以这个数据被保护的也很严格,不仅仅是原始数据获取较为困难,而且渲染后的数据也加入了大量的混淆。尽管难度很大,但是作为一直修炼千年的蜘蛛精,是没有爬不下来的数据滴。下面就看我如何织网,如何捕获猎物……呃,不对,是爬取数据……2. 环境...原创 2018-05-08 23:41:37 · 4326 阅读 · 0 评论 -
反爬技术研究 — 网站常用的反爬技术有哪些?
反爬技术研究 —— 网站常用的反爬技术有哪些?user-agent.htaccessjs基于流量的拒绝基于IP连接 的拒绝iptables的控制原创 2018-05-25 14:35:31 · 7564 阅读 · 1 评论 -
故障分析系列(01) —— scrapy爬虫速度突然变慢原因分析
反爬技术研究 —— 网站的反爬技术有哪些?原创 2018-05-21 12:24:28 · 8174 阅读 · 0 评论 -
反爬技术研究 — 网站是通过什么方式来发现爬虫的?
反爬技术研究 —— 网站是通过什么方式来发现爬虫的?单一IP非常规的访问频次单一IP非常规的数据流量大量重复简单的网站浏览行为只下载网页,没有后续的js、css请求通过一些陷阱来发现爬虫,例如一些通过CSS对用户隐藏的链接,只有爬虫才会访问...原创 2018-05-21 19:08:54 · 3956 阅读 · 0 评论 -
如何去除网页噪声提取数据(02) —— 汽车之家(字体反爬)
如何去除网页噪声提取数据(02) —— 汽车之家(自定义字体)1. 需求介绍继去哪儿网之后,我又盯上了汽车之家这个网站,这个网站的反爬策略挺有意思的,采用了时下最流行的字体反爬技术,激起了我的挑战欲,对它动起了歪心思……嘿嘿我的目标是爬取汽车之家论坛上的帖子内容。捣鼓了一番之后,捣捣捣……终于成功获取了所有信息,让数据赤裸相见了,下面讲解详细的分析过程。2. 环境py...原创 2018-05-14 09:01:34 · 8431 阅读 · 6 评论 -
如何利用网站的分布式部署(多IP)提高爬虫爬取速度?
如何利用网站的分布式部署(多IP)提高爬虫爬取速度?利用virtual host和服务器的分布式部署,我们就可以手动的对多个IP进行数据爬取 virtual host:https://blog.csdn.net/yanwushu/article/details/38360631详细过程见下图: ...原创 2018-05-03 23:23:16 · 3682 阅读 · 0 评论 -
python爬虫如何POST request payload形式的请求
python爬虫如何POST request payload形式的请求1. 背景最近在爬取某个站点时,发现在POST数据时,使用的数据格式是request payload,有别于之前常见的 POST数据格式(Form data)。而使用Form data数据的提交方式时,无法提交成功。 于是上网查了下二者的区别:http://xiaobaoqiu.github.io/blog/2...原创 2018-04-17 23:31:50 · 93746 阅读 · 10 评论 -
scrapy无法使用xpath解析?特殊网页的信息提取(1) — 百度贴吧
scrapy无法使用xpath解析?特殊网页的信息提取(1) — 百度贴吧1. 背景最近在使用scrapy爬取百度贴吧帖子内容时,发现用xpath无法解析到页面元素。但是利用xpath helper这个插件,很明显可以看到xpath路径是没有问题的。 articleList = response.xpath("//li[contains(@class, 'j_thread...原创 2018-04-15 00:22:31 · 5679 阅读 · 0 评论 -
scrapy-redis分布式爬虫如何在start_urls中添加参数
scrapy-redis分布式爬虫如何在start_urls中添加参数1.背景介绍有这样一个需求,需要爬取A,B,C,D四个链接下的数据,但是每个链接下要爬取的数据量不同:url链接: 指定爬取的商品数A: 10B: 20C: 5D: 32首先通过下面的文章了解一下scrapy-redis分布式爬虫的基本框架。 ...原创 2018-03-27 22:43:41 · 20121 阅读 · 11 评论 -
scrapy爬虫利用selenium实现用户登录和cookie传递(百度云俱乐部)
scrapy爬虫利用selenium实现用户登录和cookie传递1. 背景上篇讲解了如何在scrapy中集成selenium爬取一些特别复杂的页面(传送门:https://blog.csdn.net/zwq912318834/article/details/79773870),而事实上,在平时的爬取任务中,往往登录过程是最复杂的,其他页面相对来说比较简单。如果把过多的时间花费在破解...原创 2018-04-09 18:10:30 · 8960 阅读 · 3 评论 -
python + selenium + chrome 如何操作滚动条
python + selenium + chrome 如何操作滚动条1. 背景在使用selenium模拟浏览器时,经常会需要下拉滚动条,一般是有两个目的: 拟人操作,突破精妙的反爬系统。有些元素正常情况下不加载出来,需要拖动下拉条,才能慢慢加载出来,类似于淘宝这样的网站。2. 环境python 3.6.1系统:win7IDE:pycharm安装过chrome浏览原创 2018-02-05 17:46:50 · 27664 阅读 · 0 评论 -
python + selenium多进程分摊爬虫任务基础
python + selenium多进程分摊爬虫任务基础1. 背景现在有这样一个需求:爬取淘宝商品信息,具体的流程是,在搜索栏输入关键字,然后爬取搜索结果列表中的商品信息。分析这个需求会发现具有如下特点: 第一,淘宝请求url具有一定的反爬措施,构造起来困难 ——> 应对这种问题的方案就是采用selenium浏览器渲染技术去爬取。第二,实践发现,目前淘宝对这个爬取频率并没有做很原创 2018-01-03 16:34:43 · 18221 阅读 · 5 评论 -
selenium+python处理广告弹窗
selenium+python实现1688网站验证码图片的截取1. 背景在使用浏览器渲染技术爬取网站信息时,经常会遇到一些弹出框(广告,警告框,验证码,登录窗口等)的干扰。一般来说,当这些窗口弹出时,就无法操作原始页面。不同的弹出框有不同的处理方案: 广告:直接关闭警告框:点击确定或者取消验证码:输入验证码,进行验证登录窗口:进行登录。下面以1688网站为例,记录几种类型的处理方式。 2原创 2017-11-23 11:40:19 · 102453 阅读 · 2 评论 -
selenium+python实现1688网站验证码图片的截取
selenium+python实现1688网站验证码图片的截取1. 背景在1688网站爬取数据时,如果访问过于频繁,无论用户是否已经登录,就会弹出如下所示的验证码登录框。 一般的验证码是类似于如下的元素(通过链接单独加载进页面,而不是嵌入图片元素):<img id="J_CheckCodeImg1" width="100" height="30" onmousedown="return false原创 2017-11-22 17:53:41 · 15871 阅读 · 0 评论 -
selenium+python实现1688登录 —— iframe中元素获取
selenium+python实现1688登录 —— iframe中元素获取1. 背景在1688网站登录时,无法通过 browser.find_element_by_xpath 直接获取到用户名和密码的输入框。从网页源代码分析,发现这个网页是一个iframe嵌套的模式,所以按照传统的方式无法定位到表单元素。2. 环境python 3.6.1系统:win7IDE:pycharm安装过ch原创 2017-11-16 17:55:34 · 9088 阅读 · 1 评论 -
selenium + python环境搭建
1. 背景需求:爬取 https://www.1688.com/ 搜索结果中货源的数据。本来想使用scrapy来实现,但是在实现时遇到两个问题:第一,如果使用的user-agent是移动版,那么在访问时,会被重定向到移动app版的页面 http://m.1688.com/touch/?src=desktop&gt;,日志如下:2017-11-16 14:27:46 [s...原创 2017-11-16 14:47:10 · 8445 阅读 · 0 评论 -
scrapy爬虫注意点(1)—— scrapy.FormRequest中formdata参数
1. 背景在网页爬取的时候,有时候会使用scrapy.FormRequest向目标网站提交数据(表单提交)。参照scrapy官方文档的标准写法是:# header信息unicornHeader = { 'Host': 'www.example.com', 'Referer': 'http://www.example.com/',}# 表单需要提交的数据my...原创 2017-10-20 10:18:35 · 33210 阅读 · 5 评论 -
python爬虫网页解析中的疑难杂症...
1. 介绍2. 环境3. 获取标签之间内容该部分主要是通过正则表达式获取两个标签之间的内容,通常这种标签都是成对出现的。 开始标签如:<tr>、<th>、<td>、<a>、<table>、<div>...后缀标签如:</tr>、</th>、</td>、</a>、</table>、</div>...核心代码: res_tr = r'<tr>(.*?)</tr>' m_原创 2017-10-14 11:56:05 · 5177 阅读 · 0 评论 -
正则表达式(re)的基本操作
1. 测试正则表达式的工具。在线正则表达式测试: http://tool.oschina.net/regex/2. 常见的匹配模式3. 常用的匹配方法3.1. re.matchre.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就会返回none最常规的匹配import recontent = "Hello 123 4567 World_Thi原创 2017-09-25 11:54:09 · 5454 阅读 · 0 评论 -
scrapy爬虫注意点(2)—— 根据page循环遍历页面参数问题
1. 问题背景在访问如下这种论坛网页时,经常会根据页码访问接下来的页面。很多时候,会将pageIdx带入带request中的meta中,以便将这个page数据传递下去,但是基于scrapy的yield机制,不同的写法,会让带进去的page不同。 2. 实例分析代码# -*- coding: utf-8 -*-import scrapyclass MyclawerSpider(scrapy.原创 2017-10-27 17:02:25 · 9459 阅读 · 0 评论 -
用Python实现定时备份Mongodb数据,并上传到FTP服务器
用Python实现定时备份Mongodb数据,并上传到FTP服务器实现的功能:在win7下,每天晚上1点,自动将 F:/data中所有文件进行压缩,以[mongodb+日期]命名,将压缩好的文件存储在本地目录 F:\MongoDbData\,然后将这个压缩好的文件上传到ftp://192.168.0.101/MongoDBup/目录下分三步:第一步:搭建FTP服务器,配置好FTP环境。 第二步:原创 2017-08-16 22:27:51 · 8431 阅读 · 2 评论 -
Windows python3下安装scrapy爬虫框架的完美方案
Windows python3下安装scrapy爬虫框架的完美方案1. 背景Scrapy依赖的库比较多,至少需要依赖库有Twisted,lxml,pyOpenSSL,pywin32等。而且现在scrapy尚未全面过渡到python3,所以安装和使用起来会存在一些问题。尤其是在Windows下。在win7直接使用pip install scrapy安装会出现如下错误:# 提示缺少Twisted原创 2017-09-10 20:51:14 · 8256 阅读 · 0 评论 -
python实现scrapy爬虫每天定时抓取数据
python实现scrapy爬虫每天定时抓取数据1. 前言。1.1. 需求背景。每天抓取的是同一份商品的数据,用来做趋势分析。要求每天都需要抓一份,也仅限抓取一份数据。但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量有关,一般情况下在20小时左右,极少情况下会超过24小时。1.2. 实现功能。通过以下三步,保证爬虫能自动隔天抓取数据: 每天凌晨00:01启动监控脚原创 2017-09-02 23:18:25 · 38982 阅读 · 8 评论 -
python版 —— 验证码校验 打码兔平台的使用介绍
python版 —— 打码兔平台的使用介绍1. 背景验证码(CAPTCHA)的全称是全自动区分计算机和人类的图灵测试(Completely Automated Public Turing Test to tell Computers and Humans Apart),是一种用于区分人与计算机自动程序的挑战应答系统测试。CAPTCHA可通过设置一些人类很容易执行而自动程序很难完成的任务来区分人类和自原创 2017-11-23 17:51:02 · 14944 阅读 · 3 评论 -
python中用xpath解析网页的基本方法
1. 背景目前爬虫解析网页的技术有:Json, 正则表达式,BeautifulSoup,PyQuery,XPathXPath 教程 官方文档: http://www.w3school.com.cn/xpath/index.asp 2. XPath简述2.1. 什么是XPath?XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在原创 2017-10-08 22:51:58 · 23066 阅读 · 1 评论