![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
爬虫-Python3
文章平均质量分 60
今天我牙疼
。。
展开
-
python3-爬虫:13 单线程异步协程+分布式多进程爬虫
文章目录单线程异步协程与分布式多进程爬虫的区别异步爬虫不同于多进程爬虫,它使用的是单线程协程的进一步理解多进程爬虫案例异步协程案例异步协程请求+多进程解析(推荐)参考博客总结单线程异步协程与分布式多进程爬虫的区别异步爬虫不同于多进程爬虫,它使用的是单线程即创建一个事件循环, 然后把所有的事物添加到事件循环中,就能并发处理多个任务。在轮询到某个任务后,若遇到比较耗时的操作比如URL请求,挂起该任务并进行下一个任务,当之前被挂起的任务更新了状态(如获得了网页响应),则被唤醒,程序继续从上次挂起的地方原创 2021-01-16 21:08:03 · 374 阅读 · 0 评论 -
python3-爬虫:12 协程
目录1. 协程,asyncio包的基础构件1.1 协程的四种状态1.2 两个简单的协程案例2. 显式的将异常发送给协程:2.1 generator.throw(exc_type[, exc_value[, traceback]])2.2 generator.close()2.1 异常处理实例3. 使用yield from获取协程的返回值3.1 yield from案例4. 协程应用实例-出租车控制台1. 协程,asyncio包的基础构件进程和线程是由程序触发操作系统后执行的,而协程的操作则是由程序员开发原创 2021-01-16 15:07:58 · 317 阅读 · 1 评论 -
python3-爬虫:11 进程线程 线程同步 线程池 线程安全 队列
进程与线程在引入了线程的操作系统中,通常一个进程都有若干个线程,至少包含一个线程。根本区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位资源开销:每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。包含关系:如果一个进程内有多个线程,则执行过程不是一条线的,而是多条线(线程)共同完成的;线程是进程的一部分,所以线程也被称原创 2021-01-14 14:56:14 · 224 阅读 · 0 评论 -
python3-爬虫:10 同步与异步
同步在并发与并行的各个任务不是独自运行,任务之间有一定的交替顺序一个任务得到结果后另一个任务才开始运行(接力赛跑)例子:打电话,一部手机通过打电话的方式每次只能和一个人联系,接通电话后与对方沟通等待对方回复挂断后才可以根另一个人进行电话沟通异步在并发与并行的各个任务独立运行,任务之间互不影响(每个选手在单独跑道上的百米赛跑)例子:发微信,一部手机通过可以同时跟多个人发微信,不需等待对方回复,发完就可以去处理其他事情一个简单的例子```class HttpRequest: def __原创 2021-01-13 19:59:54 · 259 阅读 · 0 评论 -
python3-爬虫:09 并行与并发
并发:cpu在同一时间段内同时执行多个任务多个任务分别占用cpu一段时间,在自己的时间的没有执行完成则切换下一个在下一次得到cpu的使用权时在继续执行并行:在同一时刻内执行多个任务(在cpu内核数量大于进程数量时发生)全局解释锁(GIL):无论我们开启多少个线程,python在执行的时候同一时刻只允许一个线程运行由于GIL所得存在,多线程不可能真正的实现并行,所谓的并行,也只是宏观上并行微观上的并发几个小例子import threadingimport timedef gam原创 2021-01-13 15:14:35 · 237 阅读 · 0 评论 -
python算法:04 基础数据结构 二叉树
实现一棵简单的二叉树node.pyclass Node(object): def __init__(self, val=None, left=None, right=None): self.val = val self.left = left self.right = righttree.pyfrom node import Node class Tree(object): def __init__(self, node=Node()): self.root = node原创 2020-11-30 17:21:02 · 169 阅读 · 0 评论 -
python3-爬虫:08 爬取百度图片
爬取流程根据链接获取json信息根据返回的json信息提取出图片的objURL对提取出的objURL解码转换根据objURL下载图片(30张,如有需要可自行更改)from urllib.parse import urlencodefrom urllib.request import urlretrieveimport requestsimport reimport osdef get_json(): """根据链接获取json信息""" baseUrl = 'https:/原创 2020-11-27 15:24:48 · 838 阅读 · 2 评论 -
python3-爬虫 08 Ubuntu20.04安装scrapy 并进行简单测试
安装scrapy直接使用pip进行安装pip3 install scrapy创建项目创建一个蜘蛛:baiduSpider也可以定义为自己喜欢的文件名 scrapy startproject baiduSpider进入项目目录,scrapy会自动创建一个新的子目录,与定义的文件名同名 cd baiduSpider进入scrapy创建的文件夹后会发现其中包含一些配置文件以及一个spiders文件夹,我们将在这个文件夹内编写爬虫代码cd spiderstouch article.py原创 2020-11-18 15:01:12 · 1482 阅读 · 0 评论 -
python3-爬虫 07 一个简单的代理池
一个简单的代理池使用redis数据库存储,使用时需要在setting文件中修改相应的信息共包含: crawler.py: 获取模块,负责从以下两个网站爬取免费代理 http://www.goubanjia.com http://www.66ip.cn util.py: 一个工具类,用于爬取免费代理 redisSave.py:存储模块, 将爬取到的代理存入数据库 getter.py: 辅助存储爬到的代理 tester.py: 测试模块,测试代理的可用性 api.py: 接口原创 2020-11-14 19:38:32 · 586 阅读 · 0 评论 -
python3 - 爬虫 06 爬取淘宝商品:ipad (前五页)
爬取淘宝商品:ipad (前五页)共两个文件config.py 包含一些配置spider.py 为主要代码数据保存在MongoDB数据库中config.pyMONGO_URL = 'localhost' MONGO_DB = 'taobao'MONGO_COLLECTION = 'products'KEYWORD = 'ipad'MAX_PAGE = 5spider.pyfrom selenium import webdriverfrom selenium.common原创 2020-11-09 22:11:13 · 595 阅读 · 1 评论 -
python3-爬虫 05 爬取崔庆才微博前十页
直接上代码微博更新了反爬机制 ,不使用page了, 书中用的时page标记现在 2020年11月4号 使用的是since_id标记页码前一页会保存后一页的since_idfrom urllib.parse import urlencodefrom pyquery import PyQuery as pqimport requests# 爬取崔庆才的前十页微博# 查看请求 查看XHR 分析请求 爬取base_url = 'https://m.weibo.cn/api/containe原创 2020-11-04 18:30:36 · 756 阅读 · 10 评论 -
python3-爬虫 04 解析链接的相关函数
对url链接的一些操作。urlparse() 、urlunparse()解析链接: 函数: urllib.parse.urlparse(urlstring, scheme='', allow_fragments=Ture) urlstring: 必填项。 scheme: 默认协议。 allow_fragments: 选择是否忽略。如果它被设置为False, fragment部分 就会就会被忽略 返回一个元组 ParseResult(scheme='http', netloc='www原创 2020-11-01 11:01:01 · 253 阅读 · 0 评论 -
python3-爬虫 03 使用handler 登录GitHub
使用handler实现登录github知识点常用的headler类:HTTPDefaultErrorHandler: 用于处理HTTP响应错误,错误会抛出HTTPError的异常HTTPRedirctHandler: 用于处理重定向HTTPCookieProcessor: 用于处理cookiesProxyHandler: 用于设置代理,默认代理为空HTTPPasswordMgr: 用于管理密码, 他维护了用户名和密码的表HTTPBasicAuthHandler: 用于管理认证,如果一个链接打原创 2020-10-31 17:34:43 · 329 阅读 · 0 评论 -
python3-爬虫 02 使用urllib对CSDN首页进行一次简单的爬取
对CSDN首页进行一次简单爬取知识点:urllib主要包含四个模块: 1.request: 模拟发送请求 2.error: 处理异常 3.parse: 提供了URL的处理方法 4.robotparser: 用于识别网站的robot.txt文件在这里插入代码片 urlopen方法: urlopen(url, data=None, [timeout,]*, cafile=None, capath=Node, cadefault=False, context=None, )原创 2020-10-31 16:23:11 · 262 阅读 · 0 评论 -
python3-爬虫 01 爬虫基础
本次主要讨论三个问题: 1. 爬虫到底是个什么东西? 怎么爬? 2. 爬虫的重点:会话、Cookies 3. 不让我们爬咋整?什么是爬虫如果将互联网比作一个蜘蛛网,爬虫就是蜘蛛。每个蜘蛛网的节点都是一个html页面。蜘蛛爬到了这个节点就得到了这个页面的信息。通过对页面的分析提取,我们就获得了自己想要的信息。(后期详细介绍)蜘蛛不停地顺着蜘蛛网爬,就不停的在互联网中获取信息。爬完一张网,就相当于抓取了这个网站的数据。会话、Cookies首先我们来了解一下 “无状态HTTP”无状态h原创 2020-10-31 13:14:24 · 230 阅读 · 0 评论