爬虫
文章平均质量分 92
可待月光
这个作者很懒,什么都没留下…
展开
-
写文件为utf-8两种方式
html = r.content.decode(‘utf-8’)with open(‘1.html’,‘w’,encoding=‘utf-8’) as f:f.write(html)html = r.content.decode(‘utf-8’).encode(‘gbk’,‘ignore’)with open(‘1.html’,‘w’) as f:f.write(html)...原创 2019-11-25 16:37:35 · 544 阅读 · 0 评论 -
关于gbk乱码问题(前程无忧)
在我们爬虫的道路上,无疑会碰到网页的gbk编码格式,显示效果是怎样的呢经过源码的查看,我发现次网站是以gbk方式编码,查过资料后,得出结论要经过gbk编码结果就没问题了,但编码格式有点特殊,有必要提一下。通过requests.get得到的源码经过response.encoding=‘gbk’已经编码为简体字之前由于习惯没用过response.encoding转码,后经过写入文件发现原来的...原创 2019-08-22 00:04:05 · 1271 阅读 · 1 评论 -
Scrapy--CrawlSpider全站爬取
CrawlSpider继承了scrapy.spiders类增加了功能:允许客户自定义方法来搜索url继续爬取。使用CrawlSpider的优缺点优点:我们可以方便爬取我们想要的相关url缺点:由于Rules在获取到url直接运行回调函数,在中间过程我们无法加入其它操作,使之有了局限性。其他功能:可以配合redis完成增量式爬虫CrawlSpider的机制:- 连接提取器: 可...原创 2019-08-12 17:15:00 · 890 阅读 · 0 评论 -
scrapy-redis主从式简介
几种爬虫分布式架构scrapy——redis,成熟的分布式框架,redis作为通讯载体读写迅速。RabbitMQ消息中间件得益于确认机制,可以在高可靠性和高数据要求情景中,避免数据抓取的遗漏和丢失。实现可以利用scrapy_redis调度执行celery分布式任务队列用于异步操作,如tornado ,django异步任务中,通过接口,打造爬虫框架,供他人使用原生sc...原创 2019-08-15 15:51:31 · 452 阅读 · 0 评论 -
aiohttp异步
aiohttp模块提供了客户端和服务端,使用异步请求,在我们url数量庞大时可以使用,节省时间,常用来检查代理池。aiohttp使用教程aiohttp 简易使用教程原创 2019-08-14 14:13:07 · 155 阅读 · 0 评论 -
常见的scrapy持久化方式(mongo,mysql,imgpipeline)
mongo常见方式:连接插入,在spider中进行,这种比较简洁。import pymongoclass WynewsPipeline(object): conn = pymongo.MongoClient('localhost', 27017) db = conn.wynews table = db.newsinfo def process_item(se...原创 2019-08-09 18:41:45 · 299 阅读 · 0 评论 -
scrapy的中间件实现与selenium结合(网易新闻)
在我们使用scrapy爬取网易新闻时,会出现ajax形式数据,使用的是selenium+scrapy的下载中间件,这里我们实现scrapy异步抓取。中间件分类:- 下载中间件: DownloadMiddleware- 爬虫中间件: SpiderMiddleware中间件的作用:- 下载中间件: 拦截请求与响应, 篡改请求与响应- 爬虫中间件: 拦截请求与响应, 拦截管道item, 篡...原创 2019-08-09 18:12:20 · 830 阅读 · 0 评论 -
payload数据传输,携程查机票接口
网络报文中的payload通常在传输数据时,为了使数据传输更可靠,要把原始数据分批传输,并且在每一批数据的头和尾都加上一定的辅助信息,比如数据量的大小、校验位等,这样就相当于给已经分批的原始数据加一些外套,这些外套起标示作用,使得原始数据不易丢失,一批数据加上“外套”就形成了传输通道的基本传输单元,叫做数据帧或数据包,而其中的原始数据就是payload举例在爬虫中传输payload第一种:...原创 2019-08-07 10:54:36 · 2232 阅读 · 0 评论 -
基于scrapy的两种增量式爬虫(url,数据指纹)
增量式爬虫基于对数据的筛选和去重,redis的sadd正好符合这一功能,下面我们就用scrapy+redis来实现增量式爬虫。增量式爬虫应用场景用于自动化获取我们想要的数据前提是我们需要对网站数据更新模式有一些了解,避免对我们获取数据带来不必要的麻烦弊端就是我们筛选数据时不正确的处理方式导致浪费时间。增量式爬虫处理数据方式在发送请求之前判断这个URL是不是之前爬取过适合...原创 2019-08-13 14:10:58 · 926 阅读 · 0 评论 -
爬取安居客新房(urllib+bs4)
简单做了个脚本,将房源写入json文件代码注释很全,不做解释了。import jsonfrom urllib import request,parseimport refrom lxml import etreefrom bs4 import BeautifulSoup,elementdef get_url():“”"处理url地址:param url: 初始url模板:pa...原创 2019-07-02 19:10:00 · 259 阅读 · 0 评论 -
(嗅事百科)多线程爬虫
首先来说,pyton的多线程是假的多线程。由于Python代码的执行由Python虚拟机(解释器)来控制,同时只有一个线程在执行。如何使用真的多线程呢?提供了一下方法:1、重写python编译器2、调用C语言的链接库在这里我们用了第一种方法,重写了线程的run方法这篇爬取的嗅事百科,解析的数据是标题,分类和评论数。取到数据后存入mongodb思路:两个类:一个负责采集数据,一个负...原创 2019-07-11 19:32:46 · 198 阅读 · 0 评论 -
一篇入门级Scrapy框架(校花网)
心血来潮,苦口婆心写一篇校花网爬取。准备工作:要用到request模块需要的库和包(twisted,scrapy)自行安装,python环境自行安装。url:‘http://www.xiaohuar.com/hua/‘注意点用到的scrapy命令:scrapy startproject 文件名(创建项目)cd 文件名scrapy genspider 爬取网站名(约定俗成) u...原创 2019-07-16 09:15:27 · 238 阅读 · 0 评论 -
爬取猎聘网职位(requests+bs4)
本人倾向于用obs4匹配,数据量不大,怎么简单怎么来了url为关键词搜索,位置默认全国最后写入json文件import requestsimport jsonfrom bs4 import BeautifulSoup# url = 'https://www.liepin.com/zhaopin/?sfrom=click-pc_homepage-centre_searchbox-sear...原创 2019-07-05 20:17:15 · 3253 阅读 · 0 评论 -
8月最新千千音乐爬取(requests+bs4)
据之前千千音乐撸代码几个月了,该网站应该是月初盖的加密方式之前可以在F12里直接找到url的,现在我用的fiddler抓包抓到代码如下,写了三个函数,分别为单页多页爬取,这里的歌曲名没具体找,将就下from urllib import requestfrom bs4 import BeautifulSoupimport requestsdef get_songid_list(head...原创 2019-07-08 20:39:55 · 646 阅读 · 1 评论