网络爬虫
Felix-微信(Felixzfb)
字节跳动数据分析工程师,个人微信AXiaShuBai。加微信,进Python小伙伴群。
展开
-
requests+selenium 爬虫项目和 scrapy 爬虫项目的区别
爬虫项目request+selenium爬虫项目周期项目介绍爬了XXXXX,XXX,XXX,等网站,获取网站上的XXX,XXX,XXX,数据,每个月定时抓取XXX数据,使用该数据实现了XXX,XXX,XX,开发环境linux+pycharm+requests+mongodb+redis+crontab+scrapy_redis+ scarpy + mysql+gevent+celery+threading使用技术使用requests…把数据存储在mongodb中使用cron原创 2020-07-23 23:55:37 · 1518 阅读 · 1 评论 -
通用爬虫思路总结
通用爬虫思路1. 通用爬虫思路1. 准备URL准备start_urlurl地址规律不明显,总数不确定通过代码查找下一页urlxpath定位不明显,寻找url地址,部分参数可能放在当前的响应中(比如当前页码数和总页码数会在当前响应中)准备url_list页码总数明确url地址规律明显2. 发送请求,获取响应添加随机的User-Agent,反反爬虫添加随机代理的IP,建立ip代理池,反反爬虫在对方判断我们是爬虫后,应该添加更多的headers字段,包括cook原创 2020-07-23 23:51:23 · 378 阅读 · 0 评论 -
Python 通用爬虫思路
文章目录通用爬虫思路1. 准备URL2. 发送请求,获取响应3. 提取数据4. 保存通用爬虫思路1. 准备URL准备start_urlurl地址规律不明显,总数不确定通过代码查找下一页urlxpath定位不明显,寻找url地址,部分参数可能放在当前的响应中(比如当前页码数和总页码数会在当前响应中)准备url_list页码总数明确url地址规律明显2. 发送请求,获取响应添加随机的User-Agent,反反爬虫添加随机代理的IP,建立ip代理池,反反爬虫在对原创 2020-05-27 17:11:20 · 471 阅读 · 0 评论 -
HttpResponse 和 JsonResponse 的直观区别以及 response.json()方法
HttpResponse对象Django服务器接收到客户端发送过来的请求后,会将提交上来的这些数据封装成一个HttpRequest对象传给视图函数。那么视图函数在处理完相关的逻辑后,也需要返回一个响应给浏览器。而这个响应,我们必须返回HttpResponseBase或者他的子类的对象。而HttpResponse则是HttpResponseBase用得最多的子类。常用属性:content:返回的内容。status_code:返回的HTTP响应状态码。content_type:返回的数据的MIM原创 2020-05-26 09:41:02 · 7454 阅读 · 1 评论 -
Scrapy 模块不存在的错误(ModuleNotFoundError: No module named xxx)
实现的案例:scrapy 图片下载(一):三行代码实现scrapy图片下载http://www.scrapyd.cn/example/174.html1. 错误1:没有模块直接Pycharm中运行爬虫主程序代码,会提示以下错误line 17, in <module> from ImageSpider.items import ImagespiderItemModul...原创 2019-01-30 19:44:48 · 9084 阅读 · 2 评论 -
Python3网络爬虫教程19——分布式爬虫Scrapy实例(爬取多个页面)
上接:Python3网络爬虫教程18——分布式爬虫Scrapy实例(爬取一个页面)https://blog.csdn.net/u011318077/article/details/86692598先补充几个常用命令;7. Scrapy项目常用命令先打开CMD命令,CD切换到要创建的项目的文件夹下scrapy startproject(创建项目)创建项目之后切换到项目文件夹下...原创 2019-01-29 17:13:47 · 2146 阅读 · 0 评论 -
Python3网络爬虫教程18——分布式爬虫Scrapy实例(爬取一个页面)
上接:Python3网络爬虫教程17——分布式爬虫Scrapy基础https://blog.csdn.net/u011318077/article/details/866924514. 简单实例(爬取一条名言)创建一个简单的爬虫实例第一步:创建一个scrapy项目创建命令:scrapy startproject mingyan2(mingyan2是我取的项目文件夹名称)打开C...原创 2019-01-29 17:07:51 · 1872 阅读 · 1 评论 -
Python3网络爬虫教程17——分布式爬虫Scrapy基础
上接:Python3网络爬虫教程16——动态HTML(Selenium + Firefox/Chrome的使用)https://blog.csdn.net/u011318077/article/details/866923541. Scrapy介绍爬虫框架scrapy 最常用pyspider 一个小框架crawleyscrapy框架介绍官网:http://www...原创 2019-01-29 17:01:15 · 840 阅读 · 1 评论 -
Python中monkey.patch_all()解决协程阻塞问题
直接参考以下实例,采用协程访问三个网站由于IO操作非常耗时,程序经常会处于等待状态比如请求多个网页有时候需要等待,gevent可以自动切换协程遇到阻塞自动切换协程,程序启动时执行monkey.patch_all()解决# 由于IO操作非常耗时,程序经常会处于等待状态# 比如请求多个网页有时候需要等待,gevent可以自动切换协程# 遇到阻塞自动切换协程,程序启动时执行monkey.pa...原创 2019-02-22 11:41:18 · 6657 阅读 · 0 评论 -
Requests请求得到的网页乱码问题
Requests一般请求得到的内容都没有问题,但是有时候还是会出现乱码问题使用以下几行代码可以轻松解决问题:方法1:推荐使用Requests 会自动解码来自服务器的内容。大多数 unicode 字符集都能被无缝地解码。请求发出后,Requests 会基于 HTTP 头部对响应的编码作出有根据的推测。当你访问 r.text 之时,Requests 会使用其推测的文本编码。你可以找出 Reque...原创 2019-02-28 15:55:11 · 2131 阅读 · 0 评论 -
Python3网络爬虫教程20——分布式爬虫爬取10000个百度百科词条
上接:Python3网络爬虫教程19——分布式爬虫Scrapy实例(爬取多个页面)https://blog.csdn.net/u011318077/article/details/86692733利用分布式爬虫爬取1000、10000个百度百科词条分布式爬虫基本结构见下图项目结构图如下控制节点 - 控制器- URL管理器- 数据存储器爬虫节点- 爬虫程序- HTML下载器...原创 2019-03-04 22:04:18 · 1117 阅读 · 1 评论 -
Python爬虫框架scrapy.Request()函数中meta参数的作用和使用方法
初学scrapy可能会有点蒙圈,今天和大家分享下scrapy中Request方法中meta参数的用法 :我们要知道meta参数对应的值必须是一个字典它的主要作用是用来传递数据的meta是通过Request产生时传进去,通过Response对象中取出来先看一个简单的例子然后查看两个爬虫实例,进一步理解meta参数的使用:实例1第一层爬取已经获得了一个Item对象,Item对象是...原创 2019-03-13 14:59:55 · 9010 阅读 · 5 评论 -
Scrapy分布式爬虫过滤问题:DEBUG: Filtered duplicate request----no more duplicates will be shown
Scrapy分布式爬虫过滤问题分布式爬虫增加过滤规则后,再次运行时候会出现以下DEBUG,停止运行[scrapy_redis.dupefilter] DEBUG: Filtered duplicate request <GET http://yunqi.qq.com/bk/so2/n30p2> - no more duplicates will be shown (see DUPE...原创 2019-04-14 16:09:22 · 1591 阅读 · 3 评论 -
requests库中response.text 和response.content的区别
1.response.text- 类型:str- 解码类型: 根据HTTP 头部对响应的编码作出有根据的推测,推测的文本编码- 如何修改编码方式:response.encoding=”gbk”2. response.content- 类型:bytes- 解码类型: 没有指定- 如何修改编码方式:response.content.deocde(“utf-8”)3. 区别使用re...原创 2019-09-05 19:33:01 · 2674 阅读 · 0 评论 -
西刺代理有效高匿代理爬取demo
1. 爬取西刺代理网站的国内高匿代理的IP地址和端口2. 使用随机用户代理生成器高匿代理:服务器只能发现代理的地址,但是发现不了你真实的IP地址起始网页:https://www.xicidaili.com/nn/1# -*- coding: utf-8 -*-# 1. 爬取西刺代理网站的国内高匿代理的IP地址和端口# 2. 使用随机用户代理生成器# 3. 如何使用获取的高匿代理#...原创 2019-09-05 20:02:37 · 2970 阅读 · 0 评论 -
Python实现IP代理池(MondoDB和Flask实现)
ProxiesPool IP代理池MongoDB和flask实现的一个IP代理池源代码地址,直接下载既可以使用,已包含依赖包https://github.com/FelixZFB/ProxiesPool基本思路:获取代理IP: 爬取网站的免费代理。比如西刺、快代理之类有免费代理的网站, 但是这些免费代理大多数情况下都是不好用的,所以比较靠谱的方法是购买付费代理。当然,如果你有更好的代理...原创 2019-09-23 23:03:23 · 813 阅读 · 1 评论 -
Python3网络爬虫教程3——urllib.error的使用
上接:Python3网络爬虫教程2——urlopen的返回对象https://blog.csdn.net/u011318077/article/details/865106822.5. urllib.errorURLError产生的原因没网服务器连接失败是OSError的子类看案例43_7HTTPError是URLError的一个子类看案例43_8两者区别:H...原创 2019-01-16 16:59:20 · 313 阅读 · 0 评论 -
Python3网络爬虫教程2——urlopen的返回对象
上接:Python3网络爬虫教程1——初始爬虫(爬虫是干嘛的?)https://blog.csdn.net/u011318077/article/details/865088722.3. urlopen的返回对象rsp = request.urlopen(url)有时候不一定能获得对象,断网了,服务器故障等等geturl: 返回请求对象的URLinfo: 返回反馈对象的meta信息...原创 2019-01-16 16:52:01 · 1893 阅读 · 1 评论 -
Python3网络爬虫教程5——ProxyHandler处理(代理服务器和代理IP)
上接:Python3网络爬虫教程4——UserAgent的使用(用户伪装)(附常用的UserAgent值清单[https://blog.csdn.net/u011318077/article/details/86508095]3. ProxyHandler处理(代理服务器)使用代理IP,是爬虫的常用手段服务器有反爬虫手段,使用代理就是反反爬虫获取代理服务器的地址:www.xici...原创 2019-01-18 12:45:44 · 1114 阅读 · 0 评论 -
Python3网络爬虫教程6——cookie & session(cookie的属性,保存及模块的使用)
上接:Python3网络爬虫教程5——ProxyHandler处理(代理服务器和代理IP)https://blog.csdn.net/u011318077/article/details/865380424. cookie & session产生的原因:由于HTTP协议没有记忆性,人们为了弥补这个缺陷,所采用的一个补充协议cookie是发放给用户(即http浏览器)的一段...原创 2019-01-18 12:54:15 · 1230 阅读 · 0 评论 -
Python3网络爬虫教程7——SSL数字证书
上接:Python3网络爬虫教程6——cookie & session(cookie的属性,保存及模块的使用)https://blog.csdn.net/u011318077/article/details/865380975. SSL数字证书SSL就是指遵守SSL安全套阶层协议的服务器数字证书(SecureSocketLayer)理论上网址带有https:都是安全的,带有SS...原创 2019-01-18 12:56:37 · 1507 阅读 · 0 评论 -
Python3网络爬虫教程8——有道在线翻译项目(JS加密)
上接:Python3网络爬虫教程7——SSL数字证书https://blog.csdn.net/u011318077/article/details/865381166. js加密(有道在线翻译项目)有的反爬虫策略采用js对需要传输的数据进行加密处理(通常是取md5值)经过加密,传输的就是密文,但是加密函数或者过程一定是在浏览器完成,也就是一定会把代码(js代码)暴露给使用者通过阅...原创 2019-01-18 12:59:38 · 514 阅读 · 0 评论 -
Python3网络爬虫教程10——ajax异步请求(爬取豆瓣电影数据 )
上接:Python3网络爬虫教程9——有道在线翻译项目(破解JS加密过程)https://blog.csdn.net/u011318077/article/details/865921607. ajax异步请求异步请求一定会有url,请求方法,可能有数据一般使用json格式豆瓣排行榜-剧情:https://movie.douban.com/typerank?type_...原创 2019-01-24 21:01:15 · 996 阅读 · 0 评论 -
Python3网络爬虫教程11——Requests包(HTTP for Humans)
上接:Python3网络爬虫教程10——ajax异步请求(爬取豆瓣电影数据 )https://blog.csdn.net/u011318077/article/details/866331967. RequestsHTTP for Humans-献给人类,更好用,更简洁继承了urllib的所有特性底层使用的是urllib3开源地址:https://github.com/reques...原创 2019-01-24 21:05:55 · 427 阅读 · 0 评论 -
Python3网络爬虫教程12——页面解析及正则表达式的使用
上接:Python3网络爬虫教程11——Requests包(HTTP for Humans)https://blog.csdn.net/u011318077/article/details/866332611. 页面解析和数据提取简介结构数据:先有的结构,再谈数据JSON文件JSON Path转换成Python类型进行操作(json类)XML文件转化为Python类...原创 2019-01-24 21:10:43 · 274 阅读 · 0 评论 -
Python3网络爬虫教程13——BeautifulSoup4基本使用及遍历文档树
上接:Python3网络爬虫教程12——页面解析及正则表达式的使用https://blog.csdn.net/u011318077/article/details/866333305. BeautifulSoup4使用BeautifulSoup4官方文档地址:https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/#id7几个常用提取信息...原创 2019-01-24 21:16:07 · 939 阅读 · 0 评论 -
Python3网络爬虫教程14——BeautifulSoup4之搜索文档树
上接:Python3网络爬虫教程13——BeautifulSoup4基本使用及遍历文档树https://blog.csdn.net/u011318077/article/details/866333925.3. 搜索文档树5.3.1. 过滤器find_all()find_all() 方法将返回文档中符合条件的所有tag过滤器过滤器可以被用在tag的name中,节点的...原创 2019-01-24 21:19:46 · 332 阅读 · 0 评论 -
Python3网络爬虫教程15——BeautifulSoup4中的编码,格式化,解析器的区别
上接:Python3网络爬虫教程14——BeautifulSoup4之搜索文档树https://blog.csdn.net/u011318077/article/details/866334335.5. 格式化输出prettify() 方法将Beautiful Soup的文档树格式化后以Unicode编码输出,每个XML/HTML标签都独占一行如下示例markup = ‘...原创 2019-01-24 21:21:56 · 1057 阅读 · 0 评论 -
Selenium with Python 中文翻译文档
Selenium with Python中文翻译文档目录安装1.1. 安装1.2. 下载 Python bindings for Selenium1.3. Windows用户的详细说明1.4. 下载 Selenium 服务器快速入门2.1. 简单用例2.2. 示例详解2.3. 用Selenium写测试用例2.4. 逐步解释测试代码2.5. 使用远程 Selenium We...原创 2019-01-24 23:21:31 · 874 阅读 · 0 评论 -
Selenium+PhantomJS推荐使用Firefox或者Chrome的报错解决方法
今天在实现Selenium+PhantomJS案例时出现以下报错1未设置环境变量路径,然后按照网上方法有两种解决方式:方法1:把下载的PhantomJS文件夹中的PhantomJS.exe程序放在Python.exe(环境所选的解释器的位置)同一个目录下。方法2:添加PhantomJS.exe所在位置的绝对路径,类似下面,复制自己的路径名放到引号中Webdriver.Phantomjs(...原创 2019-01-25 12:58:55 · 1607 阅读 · 0 评论 -
Selenium+Chrome模拟百度搜索和截图
Selenium+Firefox/Chrome安装及使用参考以下博文https://blog.csdn.net/u011318077/article/details/86644430Selenium+Chrome模拟百度搜索和截图# 通过WebDriver操作进行查找# 无头浏览器,支持无浏览器操作from selenium import webdriverimport time...原创 2019-01-26 11:58:18 · 562 阅读 · 0 评论 -
Tesseract-OCR-4.0.0 安装和配置环境变量(附图像识别简单案例)
Win10环境安装tesseract-ocr4.0.0并配置环境变量1. 下载tesseract最新版tesseract最新版下载地址:https://github.com/UB-Mannheim/tesseract/wikiwindows系统选择32位或者64位下载即可其它操作系统下面网址选择相应的版本https://github.com/tesseract-ocr/tesserac...原创 2019-01-26 19:25:28 · 6087 阅读 · 10 评论 -
Python3网络爬虫教程4——UserAgent的使用(用户伪装)(附常用的UserAgent值清单)
UserAgent: 用户代理,简称UA,属于headers的一部分,服务器通过UA来判断访问者的身份常见的UA值,使用的时候可以直接复制粘贴,也可以用浏览器访问的时候抓包UserAgent使用方法,参考以下实例:**常见UserAgent值如下****电脑端**chrome Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/5...原创 2019-01-16 15:11:36 · 1364 阅读 · 0 评论 -
Python3网络爬虫教程1——初识爬虫(爬虫是干嘛的?)
1. 网络爬虫爬虫定义:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。两大特征按照作者的要求下载数据和内容能自动在网络上流窜三大步骤下载网页提取正确的信息根据一定的规则自动跳到另外的网页执行以上两步内容爬...原创 2019-01-16 15:42:03 · 664 阅读 · 0 评论 -
Python3—爬虫实现有道在线翻译—(常见错误汇总及解决方法)
今天尝试了一个Python3的爬虫项目:Python3实现有道在线翻译代码实现过程中遇到一些问题,经过研究都找到了对应的解决方法,先将遇到的问题和解决方法汇总如下,供大家参考:有道在线翻译是POST实现的,百度翻译是GET实现的。有道翻译每次翻译的时候,最上方地址栏中的地址时固定不变的,可以猜测有道是通过post请求实现翻译功能的。(注:判断post与get请求最显著的区别就是url地址是...原创 2019-01-18 10:51:18 · 3179 阅读 · 4 评论