
Python3网络爬虫从理论到实践Base
Base专栏将包含两部分,第1部分Python爬虫理论:介绍Python3网络爬虫基本理论,第2部分Python爬虫实战:是前者各章节实战部分的详细展开和汇总,旨在通过简单的实战案例加深对爬虫理论的理解,建立一种直觉。
CoreJT
中科院自动化所在读直博生,感兴趣的研究方向:文本分类、情感分析、机器阅读理解与问答系统以及对话系统。
展开
-
Python爬虫实战 | (22)爬取开放服务器的文件
1.任务背景 现已提供数据文件,其中两个字段是ftp链接,每一条数据有两个链接,链接对应开放服务器的文件列表,该项任务主要把文件列表中指定的压缩包文件下载下来。数据如图所示:在浏览器中打开对应的某个ftp链接,如下图所示,目标是将其中红框中的压缩包下载下来,一个ftp下载一个,一条数据对应下载两个压缩包:2.数据预处理1)去除GenBank FTP以及Re...原创 2018-10-02 10:39:55 · 3918 阅读 · 0 评论 -
Python爬虫实战 | (21) Scrapy+Selenium爬取新浪滚动新闻
在本篇博客中,我们将使用Scrapy对接Selenium来爬取新浪滚动新闻,之前我们用Selenium爬取过滚动新闻,它是由javascript动态渲染的页面,Scrapy 抓取页面的方式和requests 库类似,都是直接模拟HTTP 请求,所以Scrapy 也不能直接抓取JavaScript 动态渲染的页面。所以需要使用Selenium。抓取JavaScript 渲染的页面有两种方式:...原创 2019-07-24 20:52:13 · 3630 阅读 · 0 评论 -
Python爬虫实战 | (20) Scrapy入门实例
在本篇博客中,我们将使用Scrapy框架完成一个入门爬虫程序。在命令行创建scrapy项目首先在命令行进入PyCharm的项目目录,然后执行 scrapy startproject 项目名(如ScrapyExample),生产爬虫项目。会自动生成项目结构和一些文件:在命令行常见SpiderSpider 是一个自定义的类, Scrapy 用它来从网页里抓取内容,并解析抓取的结果。这个...原创 2019-07-24 16:07:13 · 841 阅读 · 1 评论 -
Python爬虫实战 | (19) 搭建Cookies池
在本篇博客中我们将构建Cookies池,上篇博客中我们搭建了IP代理池,与IP代理池不同,Cookies池具有针对性,如果你爬微博就要构建一个微博cookies池,爬知乎就需要构建一个知乎cookies池;而IP代理池是通用的,可供不同的爬虫任务共同使用。比如当构建微博cookies池时,我们需要一些微博账号,然后使用selenium模拟登录微博,识别验证码,登录成功后,获取该账号对应的coo...原创 2019-07-23 22:19:40 · 4280 阅读 · 0 评论 -
Python爬虫实战 | (18) 搭建IP代理池
在本篇博客中我们将完成IP代理池的搭建。IP代理池是通用的,创建好后,可供多个爬虫任务共同使用。搭建IP代理池主要分为4个基本模块:存储模块、获取模块、检测模块、接口模块。1)存储模块: 负责存储代理IP。2)获取模块: 定时在各大代理网站抓取代理IP,并保存到数据库(redis)中3)检测模块: 定时检测数据库中的代理IP,判断能否正常访问网页。4)接口模块: 提供代理IP的...原创 2019-07-22 14:55:48 · 1168 阅读 · 0 评论 -
Python爬虫实战 | (17) 破解微博登录图片验证码
在本篇博客中,我们将使用selenium模拟登录新浪微博,破解其登陆时的图片验证码。微博和简书、b站登录有所不同,后两个每次登录都会有验证码,微博有时有有时可能没有,所以写法稍有不同。我们需要使用验证码识别服务平台。超级鹰,来帮助我们破解图片验证码。下面的chaojiying.py文件用于调用超级鹰服务,帮助我们破解点触或图片验证码,直接照搬就好了:import requestsfro...原创 2019-07-21 16:21:07 · 3016 阅读 · 2 评论 -
Python爬虫实战 | (16) 破解简书登录点触验证码
在本篇博客中,我们将使用selenium模拟登录简书网站,破解其登陆时的滑动验证码。我们需要使用验证码识别服务平台。超级鹰,来帮助我们破解点触验证码。下面的chaojiying.py文件用于调用超级鹰服务,帮助我们破解点触或图片验证码,直接照搬就好了:import requestsfrom hashlib import md5#使用超级鹰来进行图片验证码和点触验证码的识别cla...原创 2019-07-21 15:36:24 · 1698 阅读 · 0 评论 -
Python爬虫实战 | (15) 破解bilibili登陆滑动验证码
在本篇博客中,我们将使用selenium模拟登录bilibili网站,破解其登陆时的滑动验证码。首先回顾一下,滑动验证码相关知识:简介滑动图形验证码,主要由两个图片组成:抠块和带有抠块阴影的原图。这里有两个重要特性保证被暴力破解的难度:(1)抠块的形状随机(2)抠块所在原图的位置随机生成滑动验证码1)后端随机生成抠图和带有抠图阴影的背景图片,后台保存随机抠图位置坐标...原创 2019-07-21 14:39:03 · 6655 阅读 · 18 评论 -
Python爬虫实战 | (14) 爬取人民网滚动新闻
在本篇博客中,我们将使用selenium爬取人民网新闻中滚动页面的所有新闻内容,包括题目、时间、来源、正文,并存入MongoDB数据库。网址:http://news.people.com.cn/打开后,发现这里都是一些滚动新闻,每隔一段时间就会刷新:我们右键查看网页源代码,发现并没有当前页面的信息:在源码页面搜索当前第一条新闻,并没有找到。右键检查:发现有当前页面的...原创 2019-07-20 21:29:32 · 4590 阅读 · 0 评论 -
Python爬虫实战 | (13) 爬取新浪滚动新闻
在本篇博客中,我们将使用selenium爬取新浪新闻中滚动页面的所有新闻内容,包括题目、时间、来源、正文,并存入MongoDB数据库。网址:https://news.sina.com.cn/roll。打开后,发现这里都是一些滚动新闻,每隔1分钟就会刷新:我们右键查看网页源代码,发现并没有当前页面的信息:在源码页面搜索当前第一条新闻,并没有找到。右键检查:发现有当前页...原创 2019-07-20 17:19:11 · 4298 阅读 · 2 评论 -
Python爬虫实战 | (12) 爬取万方数据库文献摘要并存入MongoDB
之前在Python爬虫实战(7)中曾爬取过万方,本篇博客的爬取解析过程和之前几乎完全一样,不同的是数据存储方式,之前是存储到文件中(csv,txt,json,excel等),这次我们将提取的论文信息存储到MongoDB数据库中。首先我们打开万方首页http://www.wanfangdata.com.cn:在搜索框中输入关键词,选择期刊、学位或会议,点击搜论文,并可得到与关键词相关的期...原创 2019-07-19 19:21:00 · 4033 阅读 · 3 评论 -
Python爬虫实战 | (11) 爬取网络小说并存入MongoDB数据库
之前在Python爬虫实战(2)中我们曾爬取过网络小说,本篇博客的爬取解析过程和之前几乎完全一样,不同的是数据存储方式,之前是存储到文件中(csv,txt,json,excel等),这次我们将提取的小说存储到MongoDB数据库中。下面是首页链接:http://www.xbiquge.la/xiaoshuodaquan/首先打开上面的网址,我们会发现是小说列表,选择其中一部小说,打开会是章...原创 2019-07-19 15:55:02 · 4425 阅读 · 1 评论 -
Python爬虫实战 | (10) 爬取猫眼电影《海王》影评并存入MySql数据库
之前在Python爬虫实战(6)中我们曾爬取过《海王》影评,本篇博客的爬取解析过程和之前是完全一样的,唯一不同的是数据存储方式,之前是存储到文件中(csv,txt,json,excel等),这次我们将提取的影评存储到MySql数据库中。下面是海王影评接口:http://m.maoyan.com/mmdb/comments/movie/249342.json_v=yes&offset=0...原创 2019-07-19 15:25:02 · 1659 阅读 · 0 评论 -
Python爬虫实战 | (9) 爬取搜狗图片
本篇博客我们将爬取百度图片,输入搜索词,爬取与搜索词相关的图片。首先打开搜狗图片https://pic.sogou.com/,比如搜索"猫",此时的URL如下:https://pic.sogou.com/pics?query=%C3%A8&w=05009900&p=&_asf=pic.sogou.com&_ast=1563449302&sc=inde...原创 2019-07-18 19:44:16 · 3329 阅读 · 3 评论 -
Python爬虫实战 | (8) 爬取百度图片
本篇博客我们将爬取百度图片,输入搜索词,爬取与搜索词相关的图片。首先打开百度图片http://image.baidu.com,比如搜索"美女",此时的URL如下:https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=i...原创 2019-07-18 19:18:59 · 941 阅读 · 2 评论 -
Python爬虫实战 | (7) 爬取万方数据库文献摘要
在本篇博客中,我们将爬取万方数据库,首先我们打开万方首页http://www.wanfangdata.com.cn:在搜索框中输入关键词,选择期刊、学位或会议,点击搜论文,并可得到与关键词相关的期刊、学位或会议论文,显示在下方,右上角是页数和搜索结果,默认一页20篇论文。我们需要用爬虫来模拟上述操作,通过给定一个关键词,选择期刊、学位或会议,进行搜索,将搜索结果即论文的摘要、题目、作...原创 2019-07-17 21:02:48 · 22129 阅读 · 46 评论 -
Python爬虫实战 | (6) 爬取猫眼电影《海王》影评
在本篇博客中,我们将爬取猫眼电影《海王》影评。下面是海王影评的接口:http://m.maoyan.com/mmdb/comments/movie/249342.json_v=yes&offset=0&startTime=2019-01-01%2000:00:00其中http://m.maoyan.com是猫眼电影的网址,后面是一个路径,249342是电影《海王》的id,s...原创 2019-07-17 15:08:06 · 1483 阅读 · 0 评论 -
Python爬虫实战 | (5) 爬取人民网新闻指定页面
在本篇博客中,我们将使用requests+正则表达式爬取指定页面的新闻内容,使用正则表达式解析网页,获取新闻的题目、日期、来源、正文内容。首先,搭建起主体程序,爬虫四部曲:import jsonimport requestsfrom requests.exceptions import RequestExceptionimport reimport timedef get_p...原创 2019-07-16 22:19:50 · 5989 阅读 · 1 评论 -
Python爬虫实战 | (4) 爬取新浪新闻指定页面
在本篇博客中,我们将使用urllib+正则表达式爬取指定页面的新闻内容,使用正则表达式解析网页,获取新闻的题目、日期、来源、正文内容。首先,搭建起主体程序,爬虫四部曲:import urllib.requestimport refrom requests import RequestExceptiondef get_page(url): passdef get_par...原创 2019-07-16 21:43:35 · 5404 阅读 · 0 评论 -
Python爬虫实战 | (3) 爬取豆瓣电影Top250
在本篇博客中,我们将使用requests+正则表达式来爬取豆瓣电影TOP250电影榜单,获取每部电影的序号、片名、导演、编剧、主演、类型、制作国家/地区、语言、上映日期、片长、又名、豆瓣评分和剧情简介等内容。打开豆瓣Top250,分析URL的变化:发现Top250榜总共包含10页,每页25部电影,并且每一页的URL都是有规律的,如第2页的URL是https://movie.douban.com...原创 2019-07-16 14:41:09 · 8368 阅读 · 3 评论 -
Python爬虫实战 | (2) 爬取网络小说
在本篇博客中,我们将使用requests+正则表达式爬取笔趣阁的小说,获取小说的名字、文本等内容。http://www.xbiquge.la/xiaoshuodaquan/首先打开上面的网址,我们会发现是小说列表,选择其中一部小说,打开会是章节列表,打开某一章后才是文本。所以,我们要首先获取小说列表,然后打开某一部小说后,再获取章节列表,最后在爬取对应的内容。依旧是四部曲:首先搭建起...原创 2019-07-15 21:19:37 · 971 阅读 · 1 评论 -
Python爬虫实战 | (1) 爬取猫眼电影官网的TOP100电影榜单
在本篇博客中,我们将使用requests+正则表达式来爬取猫眼电影官网的TOP100电影榜单,获取每部电影的片名,主演,上映日期,评分和封面等内容。打开猫眼Top100,分析URL的变化:发现Top100榜总共包含10页,每页10部电影,并且每一页的URL都是有规律的,如第2页为https://maoyan.com/board/4?offset=10,第三页为https://maoyan.co...原创 2019-07-15 20:22:19 · 2922 阅读 · 0 评论 -
Python爬虫理论 | (9) Scrapy分布式爬虫
目录1. 分布式爬虫原理2. Scrapy-redis3. 分布式环境搭建4. 实战1. 分布式爬虫原理分布式爬虫是将多台主机组合起来,共同完成一个爬取任务。Scrapy单机爬虫中有一个本地爬取队列Queue。如果新的Request生成就会放到Queue里面,随后Request被Scheduler调度。之后,Request交给Downloader执行爬取。...原创 2019-07-13 17:46:45 · 1308 阅读 · 0 评论 -
Python爬虫理论 | (8) Scrapy框架
目录1. Scrapy框架2. Scrapy入门实例3. Scrapy详解4. Scrapy对接Selenium5. 实战1. Scrapy框架在python爬虫中:requests + selenium 可以解决目前90%的爬虫需求。scrapy框架是为了让爬虫更强大、更高效。它是一个为了爬取网站数据,提取结构性数据而编写的应用框架,只需要实现少量代码...原创 2019-07-12 22:54:22 · 1805 阅读 · 0 评论 -
Python爬虫理论 | (7) 进阶反反爬虫技术 --- 搭建IP代理池、Cookies池
目录1. 代理的使用2. 搭建IP代理池3. 模拟登陆4. 搭建cookies池1. 代理的使用服务器会检测某个IP在单位时间内的请求次数,如果超过了某个阈值,那么服务器会直接拒绝服务,返回一些错误信息。这种情况可以称为封IP,于是网站就成功把爬虫禁掉了。绕过IP限制 反爬虫:借助代理方式来伪装IP,让服务器无法识别由我们本机发起的请求,这样就可以成功防止封IP。...原创 2019-07-10 11:39:51 · 1614 阅读 · 0 评论 -
Python爬虫理论 | (6) 进阶反反爬虫技术 --- 验证码识别
目录1. 验证码原理2. 常见验证码识别2.1 图片验证码2.2 滑动验证码2.3 点触验证码3. 实战1. 验证码原理验证码(CAPTCHA),“Completely Automated Public Turing test to tell Computers and Humans Apart”(全自动区分计算机和人类的图灵测试),是一种区分用户是计算机还是...原创 2019-07-07 11:54:15 · 867 阅读 · 0 评论 -
Python爬虫理论 | (5) 反反爬虫技术
目录1. 爬虫、反爬虫与反反爬虫2.常见的反爬虫技术3.Selenuim库4.实战1. 爬虫、反爬虫与反反爬虫爬虫自动获取网页信息的程序。反爬虫阻止爬虫程序获取网页信息的程序。反反爬虫应对反爬虫程序,爬取网页信息的程序。其中,爬虫和反反爬虫是用户的行为;反爬虫是服务器的行为。2.常见的反爬虫技术主要包括以下四种:1)Headers校验...原创 2019-07-06 15:17:39 · 3512 阅读 · 1 评论 -
Python爬虫理论 | (4) 数据存储
关于爬虫数据存储问题,通常可以有三种选择:1.文本文件(txt,json)或excel文件(csv,xlsx) 优势:使用方便,不需要第三方支持 劣势:健壮性差,扩展性差2.数据库(mysql,mongoDB,redis,oracle…) 优势:良好的扩展性,使用广泛 ...原创 2019-07-03 17:05:30 · 1876 阅读 · 0 评论 -
Python爬虫理论 | (3) 解析响应
目录1. 解析HTML格式2.解析JSON格式3.解析二进制格式4. 实战1. 解析HTML格式解析HTML格式主要有以下几种方法,我们在之后的学习中重点关注前两种:1)lxml库:第三方库,支持HTML和XML格式解析,支持XPath解析方式,解析效率非常高。2)BeautifulSoup库:第三方库,支持HTML/XML的解析,支持Python标准库中的H...原创 2019-07-02 21:18:36 · 820 阅读 · 0 评论 -
Python爬虫理论 | (2) 网络请求与响应
在上一篇博客中,我们已经学习了爬虫的基本流程,我们称之为四步曲。如下图所示:第一步:模拟浏览器向服务器发送请求 第二步:获取服务器响应 第三步:解析响应内容 第四步:保存解析后的数据在本篇博客中,我们将学习如何用Python代码模拟浏览器向服务器发送请求,主要包含Python爬虫请求库的一些基本用法和写几个小实例进行实战:目录1. urllib库2. requests库...原创 2019-07-01 16:42:13 · 4152 阅读 · 0 评论