![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python
futianwenA
这个作者很懒,什么都没留下…
展开
-
scrapy爬虫(七)--如何将selenium集成到scrapy中
要将selenium集成到scrapy,首先要考虑的是通过selenium访问到了网站页面后如何直接将内容传递给爬虫,而不是再经过下载器,这里就需要用到scrapy提供的Htmlresponse,当scrapy检测到该response对象后便不会再执行下载器,直接将其传递给爬虫,那么我们就可以在以中间件的形式接收request,然后获取url提供给selenium访问页面,用page_sour...原创 2020-04-07 16:07:51 · 580 阅读 · 0 评论 -
scrapy爬虫(六)--集成随机user-agent以及使用IP代理
本次使用的是fake-useragent开源库,该库详细内容点这里,我们来看scrapy的流程图:分析流程图可以看出,request在进入engine前会通过一些中间件;在engine和Downloader之间也有中间件,当request经过他们的处理后就交由Downloader进行下载了,因此我们只要在这层中间件对request进行处理,使其随机添加一个user-agent在源码中scra...原创 2020-04-06 16:18:37 · 300 阅读 · 0 评论 -
scrapy爬虫(五)--使用crawl模板进行全站爬取
创建项目前文已经有了,不在赘述,在生成模板时指定crawl模板(以爬取拉钩为例):scrapy gendpider -t crawl lagou www.lagou.com,生成如下模板在rules中创建Rule对象,明确url的提取规则,即哪些是详情页的url,哪些页面中存在详情页url,如首先爬虫会调用start_requests方法访问主页(start_requests方法是继承自sc...原创 2020-04-05 23:41:17 · 1305 阅读 · 0 评论 -
scrapy爬虫教程(四)--通过pipeline存储到MySQL数据库
目前Python中主流的MySQL客户端有pymysql和mysqlclient两种,我使用的是pymysql,如果最求性能可以mysqlclient安装:pip install pymsql在piplines中导入pymsql,创建链接(需要传入host、port、user、password、database),生成指针,使用execute执行SQL语句,同样需要在ITEM_PIPELIN...原创 2020-04-04 12:14:56 · 962 阅读 · 0 评论 -
scrapy爬虫(三)item及pipline
在item中定义需要存储的字段,然后导入到爬虫文件中,将相应字段数据添加到item中,直接yield出去就能传递给pipline如果要让pipline能接收到需要在settings中开启ITEM_PIPELINES这里以默认的pipline为例(可以自定义pipline,定义好后按上图的方式添加,用不上的要注释掉,后面的数字表示优先级,越小越先执行),可以看到piplines文件中的La...原创 2020-04-03 23:39:51 · 391 阅读 · 0 评论 -
scrapy爬虫教程(二)--第一个爬虫
上篇文章大致了解scrapy的流程,生成了lagou.py爬虫文件,接着看看爬虫文件的内容:通过上图看出爬虫是继承自scrapy.Spider,在进入到Spider中找到入口函数start_requests爬虫就是通过这里作为入口创建request对象,通过引擎发送给调度器,下载器获取到request进行下载,生成response发送给爬虫的parse函数进行解析父类scrapy.S...原创 2020-04-03 19:59:10 · 279 阅读 · 0 评论 -
scrapy爬虫教程(一)--scrapy安装及生成项目
安装在终端输入pip install,如果速度太慢指定国内镜像安装pip install -i https://pypi.doubanio.com/simple/ scrapy创建项目终端中执行scrapy startproject 项目名称如scrapy startproject lagouspider执行命令后生成的项目目录结构如下:在项目目录中执行生成爬虫模板文件的命令执行...原创 2020-04-03 15:47:36 · 391 阅读 · 0 评论 -
python中的前置单下划线_和前置双下划线__
前置单下划线表示受保护的成员,不应该在外部访问,但在外部访问并不会报错,其子类可以继承并访问,无法通过from xxx import *导入;比如创建文件Demo1和Demo2Demo1:a = 1_a = 2Demo2from Demo1 import *print(a)print(_a)运行结果NameError: name '_a' is not defined但是...原创 2020-02-25 15:15:29 · 545 阅读 · 0 评论 -
requests.exceptions.ProxyError/ [WinError 10061] 由于目标计算机积极拒绝,无法连接
首先检查headers中的Host是否正确,如果Host错误会造成该异常如果Host检查无误,检查是否开启了网络代理,如果开启请关闭原创 2019-12-17 16:58:39 · 437 阅读 · 0 评论 -
Python中的继承
最近项目中的多个APP的很大部分类的代码相似,少许的不同,于是将重复部分抽象为一个基类,其他APP中要用到的直接继承基类,基于此重复习继承。单继承:子类继承了父类的func方法,并直接调用,如果子类中存在相同的方法名,则优先调用子类中的方法class Father: def func1(self): print('这是父类的方法') def func2(...原创 2019-12-04 17:35:02 · 131 阅读 · 0 评论 -
解决windows10启动virtualenv虚拟环境出错
写在最前面:本次解决我的问题的博客,点这里,该博文也详细说明了virtualenv的使用很少使用windows系统了,今天在windows10中安装了virtualenv并创建python虚拟环境,启动环境时出错.\venv\Scripts\activate : 无法加载文件 venv\Scripts\activate.ps1,因为在此系统上禁止运行脚本解决方法是修改policy:...原创 2019-11-28 10:42:22 · 2142 阅读 · 1 评论 -
Python中的切片处理
对列表的区间操作l = [10, 20, 30, 40, 50, 60]newl = l[:2][10, 20]newl = l[2:][30, 40, 50, 60]s = 'bicycle'从头到尾步长为3即每三个取一个s[::3] 'bye'倒序a = s[::-1]print(a)‘elcycib’# 列表切片赋值l1 = [0, 1, 2,...原创 2019-11-12 15:48:46 · 273 阅读 · 0 评论 -
OpenCV Assertion failed: (-215:Assertion failed) npoints >= 0 && (depth == CV_32F || depth == CV_32S
昨天在使用OpenCV-Python时报错:OpenCV Assertion failed: (-215:Assertion failed) npoints >= 0 && (depth == CV_32F || depth == CV_32S),经过一番搜索,在stackoverflow上找到了答案,主要是版本问题,错误代码如下:contours = contours[0...原创 2019-11-05 10:15:45 · 2243 阅读 · 0 评论 -
python3.6+gunicorn+supervisor部署flask项目
1. 服务器环境:ubuntupython3.62. 开发接口:from flask import request, Flaskapp = Flask(__name__)@app.route('/test', methods=['get'])def test_view(): return '123'if __name__ == "__main__": a...原创 2019-07-23 12:30:13 · 650 阅读 · 0 评论 -
关于Python中的弱引用
原文地址:https://yuerblog.cc/2018/08/28/python-weakref-real-usage/弱引用在很多语言中都存在,最常用来解决循环引用问题,我个人熟悉C++的版本。在本文,我们讲一下python中的weakref弱引用,因为我发现网上没有人把这个东西讲明白,要么是千篇一律解决循环引用,要么是长篇大论各种demo,着实让人头疼。观察者模式弱引用是观察者模式...转载 2019-10-10 11:15:37 · 228 阅读 · 0 评论