使用进程池模拟多进程爬取url获取数据,使用进程绑定的回调函数去处理数据...
1 # 使用requests请求网页,爬取网页的内容 2 3 # 模拟使用进程池模拟多进程爬取网页获取数据,使用进程绑定的回调函数去处理数据 4 5 import requests 6 from multiprocessing import Pool 7 8 # response = requests.get('http://www.baidu.com') # 访问网页获取网页内容,得到一个网页内容的结果对象<Response [200]>这个200是一个状态码,200表示网页正常的返回,404表示网页找不到 9 # 10 # print(response) 11 # print(response.status_code) # 获取访问网页返回的状态码,200表示网页正常返回,404表示网页找不到。这里是200 12 # print(response.__dict__) 13 # print(response.content) # 获取网页源码 14 15 def get_url(url): 16 ''' 17 爬取url、将url和url的源码返回 18 :param url: 19 :return: 20 ''' 21 response = requests.get(url) 22 if response.status_code == 200: # 200表示网页成功返回了,成功访问了网页 23 return url, response.content.decode('utf-8') # 将网页的源码获取到,因为源码是bytes类型的,所以这里解码成了str 24 25 def call_back(args): 26 ''' 27 回调函数,接收获取get_url的返回值,处理获取到的网页数据 28 :param args: 参数不能是多个,所以想获取到多个参数,这里可以是元组的形式.接收的是get_url的返回值 29 :return: 30 ''' 31 url, content = args 32 print(url, len(content)) 33 34 if __name__ == '__main__': 35 url_lst = [ 36 'https://www.cnblogs.com', 37 'http://www.baidu.com', 38 'https://www.sogou.com', 39 'http://www.sohu.com' 40 ] 41 pool = Pool(4) 42 for url in url_lst: 43 pool.apply_async(get_url, args=(url, ), callback=call_back) 44 pool.close() 45 pool.join()
回调函数:一般应用在进程的任务有延时,而要处理的数据时间的很短时,将进程的任务和回调函数绑定起来,将任务获取到的数据返回给回调函数,由回调函数处理数据,回调函数是在主进程中得以执行的
转载于:https://www.cnblogs.com/whylinux/p/9839338.html
使用进程池模拟多进程爬取url获取数据,使用进程绑定的回调函数去处理数据...相关推荐
- 使用Xpath+多进程爬取诗词名句网的史书典籍类所有文章。update~
上次写了爬取这个网站的程序,有一些地方不完善,而且爬取速度较慢,今天完善一下并开启多进程爬取,速度就像坐火箭.. # 需要的库 from lxml import etree import reques ...
- python+BeautifulSoup+多进程爬取糗事百科图片
用到的库: import requests import os from bs4 import BeautifulSoup import time from multiprocessing impor ...
- 第26讲:模拟登录爬取实战案例
在上一课时我们了解了网站登录验证和模拟登录的基本原理.网站登录验证主要有两种实现,一种是基于 Session + Cookies 的登录验证,另一种是基于 JWT 的登录验证,那么本课时我们就通过两个 ...
- 2021春项目需求记录 python实现模拟登录+爬取NASA Modis 上的产品数据
python实现模拟登录+爬取Nasa Modis 上的产品数据 概述 需求分析 基本思路 代码 概述 3月的中旬时候参与了学校的一个大创项目,作为本科生,本人只是摸鱼打杂,负责了其中的一个功能模块: ...
- python + selenium多进程爬取淘宝搜索页数据
python + selenium多进程爬取淘宝搜索页数据 1. 功能描述 按照给定的关键词,在淘宝搜索对应的产品,然后爬取搜索结果中产品的信息,包括:标题,价格,销量,产地等信息,存入mongodb ...
- python+正则+多进程爬取糗事百科图片
话不多说,直接上代码: # 需要的库 import requests import re import os from multiprocessing import Pool # 请求头 header ...
- Python 爬虫实战,模拟登陆爬取数据
Python 爬虫实战,模拟登陆爬取数据 从0记录爬取某网站上的资源连接: 模拟登陆 爬取数据 保存到本地 结果演示: 源网站展示: 爬到的本地文件展示: 环境准备: python环境安装 略 安装r ...
- scrapy模拟浏览器爬取51job(动态渲染页面爬取)
scrapy模拟浏览器爬取51job 51job链接 网络爬虫时,网页不止有静态页面还有动态页面,动态页面主要由JavaScript动态渲染,网络爬虫经常遇见爬取JavaScript动态渲染的页面. ...
- 多进程爬取豆瓣电影前100,将数据导出为Excel表
之前学习爬虫时,自己尝试写代码爬取的爬取豆瓣前100的电影,现在发表出来便于自己回顾知识点,该代码爬取速度还是非常快的,但是就是因为设置多进程爬取后爬取时间过快,如果不设置随机时间,没有代理IP,爬取 ...
最新文章
- 编程之美:无差错二分查找
- Xcode bug: imageNamed:方法返回nil
- 系统架构设计理论与原则
- 21天学通python pdf-21天学通Python PDF百度网盘资源下载
- HDU 1879(最小生成树问题,Prim)
- 汇编语言 字母的大小写转换
- java二叉树 最大值_leetcode刷题笔记-654. 最大二叉树(java实现)
- Linux系统开机启动过程分析
- C++泛型编程实现二叉搜索树BST
- Broker模块划分
- 【云速建站】按照给定模板从0开始编辑网站页面
- Map-Reduce原理
- 2019西电网安实验班选拔考试
- 啊哈算法——第一章第二节:冒泡排序
- 判断粗大误差的matlab程序,粗大误差处理程序
- 微星主板前面板耳机插孔无声音输出问题【已解决】
- AE渲染加快速度,解决导出视频太慢的问题
- h2o java,H2O AutoML入门开发简介
- open-falcon短信报警
- python3 判断素数