![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
爬虫
文章平均质量分 62
「已注销」
这个作者很懒,什么都没留下…
展开
-
使用正则表达式爬取古诗文网唐诗300首
思路先从唐诗300首页面获取所有唐诗详情页的链接; 再从每一首唐诗的详情页提取标题、作者、朝代、内容等信息。源码# !/usr/bin/env python# -*- coding:utf-8 -*-import reimport requestsdef crawl(start_url): base_url='http://so.gushiwen.org'原创 2018-01-21 02:28:59 · 3599 阅读 · 2 评论 -
Scrapy框架学习 - 爬取Boss直聘网Python职位信息
分析使用CrawlSpider结合LinkExtractor和Rule爬取网页信息LinkExtractor用于定义链接提取规则,一般使用allow参数即可LinkExtractor(allow=(), # 使用正则定义提取规则 deny=(), # 排除规则 allow_domains=(), # 限定域名范围原创 2017-12-26 22:10:57 · 1810 阅读 · 1 评论 -
Scrapy框架学习 - 爬取腾讯社招全部职位信息
分析1.分析网页,确定数据爬取规则2.创建项目3.创建数据模型Item4.创建爬虫Spider,进行数据爬取5.创建Item Pipeline,进行数据处理6.按需求设置配置文件源码items.pyclass TencentPositionItem(scrapy.Item): """腾讯招聘爬虫Item""" # 职位名称 tit原创 2017-12-25 17:25:56 · 719 阅读 · 0 评论 -
Scrapy框架学习 - 使用Twisted框架实现异步存储数据到MySQL数据库中
概述以爬取豆瓣读书Top250排行榜为例。关键是使用Twisted框架的adbapi,创建数据库连接池对象,然后使用这个数据库连接池对象进行数据库操作, 这样就实现了数据存储的异步方案。核心代码如下: 1.使用Twisted中的adbapi获取数据库连接池对象。 参数“pymsql”为使用的数据库引擎名字,params与直接使用pymsql.connect(params)连接数据原创 2018-01-30 19:35:49 · 3173 阅读 · 1 评论 -
Scrapy框架学习 - 常用的下载器中间件用法总结
Downloader Middleware(下载器中间件)包括Scrapy内置的下载器中间件和用户自定义的下载器中间件。内置下载器中间件的用法参考官方文档自定义下载器中间件,需要以下2步:定义下载器中间件,继承自object在settings.py文件中的DOWNLOADER_MIDDLEWARES 字段中配置,激活中间件User-Agent下载器中间件middl原创 2018-01-23 00:33:22 · 1441 阅读 · 0 评论 -
urllib库学习 - 百思不得姐段子爬虫
概述使用urllib和re模块爬取百思不得姐段子源码# !/usr/bin/env python# -*- coding:utf-8 -*-"""\w+?"""import urllib.requestimport redef crawl(): base_url='http://www.budejie.com/text/' for page i原创 2018-01-05 13:52:23 · 677 阅读 · 0 评论 -
urllib库学习 - 京东商城手机图片爬虫
概述使用urllib和re模块爬取京东商城手机分类下的所有图片思路:1.通过for循环控制每一页的爬取,并组合每一页的urlurl="https://list.jd.com/list.html?cat=9987,653,655&page="+page2.爬取每一页中的数据,通过正则提取其中所有图片的url提取规则:2.1 先提取包含手机商品的列表part1=r'.+原创 2018-01-05 00:50:00 · 672 阅读 · 0 评论 -
urllib库学习 - 好123网址链接爬虫
概述核心是网址链接的正则表达式,如下:r'(\w+?)'源码# !/usr/bin/env python# -*- coding:utf-8 -*-import urllib.requestimport redef crawl(): url='https://www.hao123.com/' headers={ 'User-Agent'原创 2018-01-05 11:31:17 · 669 阅读 · 0 评论 -
Scrapy框架学习 - 常用命令行工具
scrapy scrapy –version scrapy version [-v] 查看版本信息,可选项 -v 参数查看各组件的版本信息 scrapy –help 查看帮助信息scrapy list 列出当前项目中所有的爬虫scrapy bench scrapy基准测试,用于检测scrapy安装环境是否完整scrapy view 创建给定url对应网页的真实响应的原创 2018-01-21 23:20:51 · 940 阅读 · 0 评论 -
Pathon爬虫 - 登录的原理及其方式
原理登录一个网站,实际上就是服务器对客户端的身份识别过程。第一次登录的时候,一般需要验证用户名、密码或者秘钥等信息; 当再次登录时,如果客户端保存了Cookie信息,则服务器只需要验证Cookie或Session信息即可。模拟登录的方式通过对登录的原理的分析,可以得出两种登录方式:模拟填写Web表单的方式。通过向服务器发送登录需要的用户名和密码等表单数据,实现登录;直原创 2018-01-23 01:26:19 · 990 阅读 · 0 评论 -
Scrapy框架学习 - 爬取西刺代理网免费高匿代理
分析需求: 爬取西刺代理网免费高匿代理,并保存到MySQL数据库中。 这里只爬取前10页中的数据。 思路:分析网页结构,确定数据提取规则创建Scrapy项目编写item,定义数据字段编写spider,实现数据抓取编写Pipeline,保存数据到数据库中配置settings.py文件运行爬虫项目代码实现items.pyimport scrapycla原创 2018-01-23 21:47:11 · 1188 阅读 · 0 评论 -
使用requests库模拟登录豆瓣网并获取个人信息
分析首先分析登录时需要post哪些数据到服务器。 登录界面如图所示,验证码并不是一开始就需要输入的,而是尝试登录失败几次后才出现。所以,需要在代码中判断是否 需要输入验证码。 打开Chrome调试工具,使用错误的密码登录一次,可以看到以下信息:source:Noneredir:https://www.douban.com/people/88152161/form_email:原创 2018-01-21 00:24:25 · 4612 阅读 · 0 评论 -
Python爬虫 - 使用requests和re模块爬取慕课网课程信息
分析使用requests和re模块爬取慕课网 “免费课程/数据库/“ 分类下的课程信息代码实现# !/usr/bin/env python# -*- coding:utf-8 -*-import reimport requestsimport osnum=0def crawl(url): global num base_url='https://ww原创 2018-01-26 01:44:26 · 2180 阅读 · 0 评论 -
Python爬虫完整案例 - 爬取百度百科词条信息
概述一个完整的爬虫,一般由以下5个组件构成:1.URL管理器负责维护待爬取URL队列和已爬取URL队列,必须拥有去重功能。2.HTML下载器负责根据调度器从URL管理器中取出的url,下载html页面数据3.HTML解析器负责解析HTML下载器下载的网页数据,从中提取新的url和目标数据,并将其返回4.数据存储器负责将HTML下载器返回的的数据保存到本地或数据库原创 2018-01-08 17:16:27 · 5222 阅读 · 2 评论 -
Scrapy框架学习 - 模拟登录的实现方式
使用Cookie模拟已登录状态import scrapyclass LoginByCookie(scrapy.Spider): """ 模拟登录方式一:直接使用cookie登录 登录慕课网 """ name = 'login_by_cookie' allowed_domains=['www.imooc.com'] st原创 2018-01-23 20:40:23 · 2546 阅读 · 0 评论 -
Scrapy框架学习 - 扩展内置的ImagesPipeline实现图片下载
分析需求:下载斗鱼主播图片思路:使用Fiddler抓包工具,抓取斗鱼APP中关于主播信息的请求接口,响应数据为Json格式在items中定义Item,包含 image_urls 和 images 字段在spider中提取图片链接,保存到Item的 image_urls 字段中,返回Item在Pipeline中通过继承内置的ImagesPipeline类,扩展功能,实现自定义Im原创 2018-01-24 21:26:51 · 2861 阅读 · 0 评论 -
Scrapy框架学习 - 使用内置的ImagesPipeline下载图片
需求分析需求:爬取斗鱼主播图片,并下载到本地思路:使用Fiddler抓包工具,抓取斗鱼手机APP中的接口使用Scrapy框架的ImagesPipeline实现图片下载ImagesPipeline实现图片下载的使用方法:在items中的XxxItem中定义 image_urls 和 images字段在spider中将提取出来的图片链接保存到Item的 image_url原创 2018-01-22 22:43:17 · 6926 阅读 · 0 评论 -
使用urllib库的urlretrieve()方法下载网络文件到本地
概述见源码源码# !/usr/bin/env python# -*- coding:utf-8 -*-"""图片(文件)下载,核心方法是 urllib.urlrequest 模块的 urlretrieve()方法 urlretrieve(url, filename=None, reporthook=None, data=None) url: 文件u原创 2018-01-08 01:35:19 · 4661 阅读 · 0 评论 -
Selenium库的基本用法总结
# !/usr/bin/env python# -*- coding:utf-8 -*-from selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.common原创 2018-01-13 01:51:12 · 3413 阅读 · 0 评论 -
动态网站数据采集 - 去哪儿网火车票查询爬虫
分析在去哪儿网火车票查询页面,需要用户填写出发站、目的地站、出发时间等信息,然后,点击搜索按钮, 页面通过Ajax获取并显示查询结果数据。这里用Selenium+PhantomJS模拟这一过程。通过Selenium加载火车票查询页面,并获取到需要进行数据填充的3个输入框和进行数据提交的搜索按钮;模拟填充3个输入框数据,模拟点搜索按钮;从浏览器对象中获取到已经渲染完毕的HTM原创 2018-01-13 01:41:02 · 4078 阅读 · 1 评论 -
urllib库用POST请求模仿有道在线翻译
思路分析有道在线翻译的请求、响应信息使用Google Chrome浏览器进行分析,如图:1.获取到Request URL2.获取到请求头信息3.获取到要传递给服务器的表单信息4.响应体,可以看出是Json格式数据编写代码思路1.根据以上分析得到的信息,构造url、请求头、表单信息2.获取到urllib.Request对象3.获取响应的原创 2017-12-18 19:24:10 · 873 阅读 · 0 评论 -
动态网站数据采集 - 时光网电影信息爬虫
分析由于时光网中电影的票房、排名等大部分信息是通过Ajax异步加载的,所以,使用常规的静态网站抓取技术, 无法获取到这些信息。要获取这些信息,必须从Ajax请求中查找。先点开一个正在上映的电影 《前任3》 首先,找到是哪个Ajax请求用于获取这些信息 发现,以下url返回了所需要的数据Ajax请求URLhttp://service.library.mtime.com/原创 2018-01-11 19:45:54 · 6430 阅读 · 1 评论 -
lxml库学习 - 爬取糗事百科热门段子
源码# !/usr/bin/env python# -*- coding:utf-8 -*-import requestsfrom lxml import etreeimport jsondef main(): while True: page=input('请输入页码: ') if isinstance(int(page),int):原创 2017-12-22 18:09:59 · 669 阅读 · 0 评论 -
Python中正则表达式的用法总结
正则表达式很神奇啊# -*- coding:utf-8 -*-import redef print_match_res(res): """打印匹配对象内容""" if res is not None: print(res.group()) else: print(None)# 两种匹配方式:pattern="[A-Z][a原创 2017-12-19 19:12:16 · 951 阅读 · 1 评论 -
Scrapy框架学习 - 搭建开发环境
安装sudo pip3 install scrapy测试是否安装成功原创 2017-12-24 17:02:36 · 697 阅读 · 0 评论 -
Scrapy框架学习 - 爬取参考消息网“整站”新闻
概述使用Scrapy框架爬取参考消息网“整站”新闻(其实只是爬取了六大类中的所有新闻,因为其它页面中的url链接有点乱,需要单独处理,这里只是为了练习整站爬虫的思路)代码逻辑如下:1. 先从网站导航页面提取分类信息(一级分类和二级分类);2.然后根据二级分类中的链接跳转到新闻列表页面,爬取每一条新闻的链接3. 根据新闻条目链接,跳转到新闻详情页,爬取最终需要的信息原创 2017-12-31 18:58:16 · 1604 阅读 · 0 评论 -
Scrapy框架学习 - 爬取博客园所有新闻
概述主要是为了练习使用CrawlSpider类的rules变量中定义多个Rule的用法,体会Scrapy框架的强大、灵活性。因此,对抓取到的内容只是保存到JSON文件中,没有进行进一步的处理。源码items.pyclass CnblogNewsItem(scrapy.Item): # 新闻标题 title=scrapy.Field() # 投原创 2017-12-27 13:43:45 · 1749 阅读 · 0 评论 -
PhantomJS安装过程中遇到的问题
官方网站: http://phantomjs.org/淘宝镜像: https://npm.taobao.org/mirrors/phantomjs问题一:selenium.common.exceptions.WebDriverException: Message: 'phantomjs' executable needs to be in PATH.原因:环境变量问原创 2017-12-23 16:27:01 · 1183 阅读 · 1 评论 -
urllib库学习 - 用GET请求实现百度贴吧HTML页面的下载
思路分析百度贴吧URL 发现,不同页面的URL唯一不同的是pn参数的值,每一页递增50。这样URL就搞定了。开始代码编写1. 构造URL2. 根据URL,使用urllib.request发起网络请求,并获取HTML页面字符串3. 将HTML页面字符串保存到本地磁盘中源码# !/usr/bin/env python# -*- coding:ut原创 2017-12-18 17:29:20 · 754 阅读 · 0 评论 -
urllib库利用cookie实现模拟登录慕课网
思路1.首先在网页中使用账户和密码名登录慕课网2.其次再分析请求头,如下图所示,获取到请求URL,并提取出cookie信息,保存到本地3.最后在代码中构造请求头,使用urllib.request发送包含cookie信息的请求源码# !/usr/bin/env python# -*- coding:utf-8 -*-"""使用Cokie模拟登录"""原创 2017-12-19 13:19:45 · 1705 阅读 · 0 评论 -
urllib库关于请求未通过CA认证的HTTPS网址的处理方法
思路以中国铁路客户服务中心12306为例。12306网站用的是自己的一套认证机制,并没有通过CA认证。所以,直接使用https协议访问时,会出现如下图所示的警告信息:这里可以选择继续前往不安全的网址。同样,在代码中,只需要跳过SSL警告,去访问未通过CA认证https网址。源码# !/usr/bin/env python# -*- coding:u原创 2017-12-19 13:45:53 · 2141 阅读 · 0 评论 -
urllib库request模块常用HTTP请求方法总结
urllib库进行HTTP请求常用方法总结如下:# !/usr/bin/env python# -*- coding:utf-8 -*-"""urllib.request.urlopen() 打开Urls,并获取响应"""import urllib.requestimport urllib.parse# GET请求url="http://www.baidu.com原创 2017-12-19 18:28:30 · 1045 阅读 · 0 评论 -
urllib库request模块中各种Handler的用法总结
urllib库request模块中各种Handler的用法总结如下:# !/usr/bin/env python# -*- coding:utf-8 -*-"""HTTPHandlerHTTPBasicAuthHandlerProxyHandlerProxyBasicAuthHandlerHTTPCookieProcessor"""import urllib.request原创 2017-12-19 18:32:56 · 4130 阅读 · 0 评论 -
urllib库parse模块用法总结
urllib库parse模块用法总结如下:# !/usr/bin/env python# -*- coding:utf-8 -*-"""urllib.parse 处理URL的模块"""import urllib.parse# 解析url,返回包含url信息的6元元组res=urllib.parse.urlparse("https://docs.python.org/原创 2017-12-19 18:41:46 · 5002 阅读 · 0 评论 -
urllib库进行网络请求后返回的HTTPResponse对象的用法总结
不管是使用urllib.request.urlopen()方法,还是使用opener.open()方法,都返回同样类型的HTTPResponse对象,用法总结如下:# !/usr/bin/env python# -*- coding:utf-8 -*-from urllib import requestfrom urllib import responseURL="http://w原创 2017-12-19 18:53:57 · 16885 阅读 · 0 评论 -
urllib库 + re模块爬取内涵吧的文字段子
源码# !/usr/bin/env python# -*- coding:utf-8 -*-"""爬去内涵吧的段子 关键点: 1.分析url 2.分析html源码中段子的标题和内容,构建正则表达式 3.findall()方法"""import urllib.requestimport reclass Spider(o原创 2017-12-20 13:24:58 · 849 阅读 · 0 评论 -
urllib库 + lxml库爬取任意百度贴吧图片
用到的知识1.用urllib库发送GET请求2.用XPath搜索匹配文档节点3.lxml库解析HTML文档源码# !/usr/bin/env python# -*- coding:utf-8 -*-from lxml import etreeimport urllib.requestimport urllib.parseimport randomimpor原创 2017-12-20 20:29:46 · 840 阅读 · 0 评论 -
Scrapy框架学习 - 爬取豆瓣电影排行榜TOP250所有电影信息并保存到MongoDB数据库中
概述利用Scrapy爬取豆瓣电影Top250排行榜电影信息,并保存到MongoDB数据库中使用pymongo库操作MOngodb数据库没有进行数据清洗源码items.pyclass Douban250Item(scrapy.Item): """豆瓣电影Top250爬虫 Item""" # 电影名称 title=scrapy.Field()原创 2017-12-27 21:43:56 · 2565 阅读 · 1 评论