搬砖的乔布梭
这个作者很懒,什么都没留下…
展开
-
使用slenium+chromedriver实现无敌爬虫
@概述通常各大网站的后台都会有一定的反爬机制,既为了数据安全,也为了减小服务器压力通常反爬的手段的方向,都是识别非浏览器客户端,而selenium所做的事情,恰恰是驱动真正的浏览器去执行请求和操作,只不过信号不是来源于鼠标,而是来源于selenium的API(selenium本是一个自动化的测试工具)自然人用户能做的一切,selenium几乎都驱动浏览器取做,无论是否有界面,包括输入、点原创 2018-02-06 02:08:06 · 25221 阅读 · 5 评论 -
使用scrapy_redis分布式爬虫爬取壁纸网站
@概述对于比较庞大的爬虫项目,可以考虑分工在多台服务器上进行分布式爬取master端安装redis内存数据库,实现高速写入和转存(必须要转存,否则断电或程序崩溃,则数据将不复存在)slave端爬虫程序运行起来后,会监听master端发送的指令并开始爬取,数据在scrapy_redis框架作用下,会源源不断地存储到master端redis数据库master端redis的安装以及slave原创 2018-02-05 21:56:19 · 752 阅读 · 0 评论 -
scrapy框架的CrawlSpider类和LinkExtractor提取规则
@业务场景当爬虫的主要工作集中在对超链接的深度爬取而非首页时适用当定义好子链接爬取规则时,框架会自动对子链接进行访问,并将不同样式的子链接页面结果交由不同回调函数处理本例对《使用scrapy框架爬取股票数据》进行改写@创建CrawlSpiderscrapy genspider -t crawl stock stock.10jqka.com.cn则框架会自动生成爬虫模板sto原创 2018-02-05 21:10:12 · 1973 阅读 · 0 评论 -
使用scrapy框架爬取股票数据
@概述本例将手把手带大家实现一个使用scrapy框架爬取股票数据的例子我们将同花顺中融资融券中的几只个股的历史数据爬下来,并保存为csv文件(csv格式是数据分析最友好的格式)本例使用到了pileline和中间件middlewarescrapy的安装请参见我博客的其它相关文章@爬取标的我们对融资融券对应的相关个股的前三页历史数据爬下来,如图所示: @原创 2018-02-05 17:45:26 · 4068 阅读 · 1 评论 -
使用IP代理发起http请求
@概述同一IP爬多了,对方服务器可能会意识到你是一个爬虫程序而非真实用户,那么你就有IP被封的风险随机切换不同的代理IP进行爬取,可以规避封IP反爬(做点网站真是挺不容易的o(╥﹏╥)o)获取代理IP的渠道有多种,我用的是http://ip.filefab.com/,有免费的也有付费的,大家可以自行选择@通过FileFab查看自己的真实IP 通过代码查看效果是相同的url原创 2018-02-05 11:54:12 · 31940 阅读 · 0 评论 -
爬虫突破登录壁垒-2:使用cookies
@通过cookies突破登录壁垒在《壁垒-1》中我们模拟用户名、密码、验证码的方式实现了登录在其抓包的过程中,我们发现服务端是给我们返回了cookies的,cookies的作用即在于记录用户信息我们直接把登陆成功后的cookies拿来丢在请求头里,其效果和我们使用用户名密码登录是完全一致的@将cookies重构为字典,并添加到会话对象中# 在浏览器中登录,抓包获取的cook原创 2018-02-05 11:21:31 · 383 阅读 · 0 评论 -
爬虫突破登录壁垒-1
@什么是登录壁垒如今的很多网站要求你必须是注册用户并且登录的状态下,才为你提供服务所以爬虫的许多访问和抓取工作,也必须以登录为前提用户通过用户名、密码、验证码登录,通常提交的都是POST请求我们要通过抓包的方式分析获取请求地址、表单参数登录成功后,后续的请求的发起,全部使用登录时使用的会话对象@获取登录首页元素树这里特别注意,是使用的会话对象session发起的请求因为原创 2018-02-05 10:50:30 · 603 阅读 · 0 评论 -
使用requests访问必应在线翻译
@导包import requestsimport json@在浏览器中访问必应在线翻译首页,抓包获得相应的请求头# 请求必应在线翻译首页,通过在浏览器中访问抓包请求头headers_1 = { 'Host': 'www.bing.com', 'Connection': 'keep-alive', 'Cache-Control': 'max-age=0原创 2018-02-04 10:58:26 · 2847 阅读 · 1 评论 -
爬取【ajax+json】异步加载的网站
@导入类库import requestsfrom lxml import etreeimport jsonimport time@请求地址和请求头# 请求头,用于伪装客户端浏览器,可由抓包获取header_base = { 'Connection': 'keep-alive', 'User-Agent': 'Mozilla/5.0 (Windows NT原创 2018-02-04 10:02:36 · 4191 阅读 · 2 评论 -
使用requests爬取图片
@简单的小例子,直接上代码import requests# 发起http请求# imgurl = 图片地址# headers用于伪装客户端浏览器res = requests.get(imgurl, headers=my_headers)# 写入图片数据# response对象的content属性为图片的字节# 写入二进制数据需要使用wb,ab,xb等字节写入模式with o原创 2018-02-04 08:55:35 · 773 阅读 · 0 评论 -
使用requests配合【lxml+xpath】爬取B2B网站
@导入类库import requestsfrom lxml import etreeimport time@准备请求头,以伪装客户端浏览器# 请求头,可以由F12页面控制台或fidder等抓包工具获取header_base = { 'Connection': 'keep-alive', 'User-Agent': 'Mozilla/5.0 (Windows原创 2018-02-04 08:31:16 · 1867 阅读 · 0 评论 -
使用requests进行简单http请求
@引入类库import requests@发起请求,获得页面内容myheaders = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36',}url_str原创 2018-02-04 07:45:27 · 467 阅读 · 0 评论 -
使用BeautifulSoup解析页面
@安装beautifulsoup4:pip install beautifulsoup4@引入类库# 由bs4引入鸡汤from bs4 import BeautifulSoup@获得beautifulsoup对象# 声明使用lxml作为解析器,获得一碗鸡汤# 这里必须同时装有lxmlbsp = BeautifulSoup(page_text, 'lxml')@原创 2018-02-04 07:36:08 · 873 阅读 · 0 评论 -
使用lxml+xpath解析html页面
@待解析的页面html lang="en">title>Titletitle>body>h1> This is h1 h1>div> This is fisrt div div>劳资是1.1div>div>div id="divid"> img src="1111.png"/> span id="sp1"> desc 1111.png s原创 2018-02-04 07:13:03 · 3727 阅读 · 0 评论 -
Python爬虫问题汇总(持续更新)
@分布式爬虫的slave端找不到scrapy_redis:运行slave端时使用:sudo scrapy crawl spidername,或sudo scrapy runspider mycrawler_redis.py,总之sudo一下;没sudo居然报找不到模块…没道理,蛋疼啊;@分布式爬虫尝试连接远程redis被拒:报错:redis.exceptions.Respons原创 2018-02-04 05:33:18 · 4671 阅读 · 0 评论 -
使用Python基础类库爬微博数据
本例是基于https://weibo.cn/这个接口进行的爬虫实验,weibo.com可不是辣么好爬滴哟,gaga~一些必备的知识技能包括:熟练使用诸如fidders之类的抓包工具;熟练使用F12页面控制台;熟练使用xpath配合lxml进行页面元素的定位;上代码,关键点请看注释:# 导入网络请求类库import requests# 导入xml解析类库用于解析原创 2018-01-31 01:31:18 · 815 阅读 · 0 评论