import requests
import re
from multiprocessing import Pooldef get_html(url, header=''):''':param url: http://quotes.toscrape.com/:param header: 设置请求头 这个网站没有反爬 可以不设置:return: 返回响应数据'''response = requests.get(url, headers=header, timeout=3)# 如果状态码200  表示成功if response.status_code == 200:# 设置编码response.encoding = response.apparent_encoding# 返回数据return response.textelse:print('访问 {} 失败了。。 {}'.format(url, response.status_code))return Nonedef parser_html(html):''':param html: 需要处理的html:return: 返回当前页面的数据'''# 得到当前页所有的名言 返回listspan = re.findall('<span class="text" itemprop="text">(.*?)</span>', html)# 得到当前页所有的作者  返回listsmall = re.findall('<small class="author" itemprop="author">(.*?)</small>', html)# 得到所有标签div = re.findall('<div class="tags">(.*?)</div>', html, re.S)all_a = []  # 创建新列表用于存放标签for tags in div:# 在每个tag标签中得到所有的a标签 (标签)tag = [i for i in re.findall('<a class="tag" href=".*?">(.*?)</a>', tags)]all_a.append('/'.join(tag))data = []  # 用于存放最终数据for i in range(len(span)):# 遍历所有数据 得到最终数据data.append('名言是:' + span[i] + "作者是:" + small[i] + '标签是:' + all_a[i])return datadef save_data(data, path=''):''':param data: 要保存的数据:param path: 保存的路径:return:'''# 保存数据with open(path, 'a', encoding='utf-8') as f:for i in data:f.write(i + '\n')def main(url):# 获取当前页面html = get_html(url)# 解析当前页data = parser_html(html)# 保存当前数据集save_data(data, '名言.txt')if __name__ == '__main__':# 创建进程池pool = Pool()# 翻页 将所有的url 放入池中for page in range(1, 11):url = f'http://quotes.toscrape.com/page/{page}/'pool.apply_async(main, args=(url,))pool.close()  # 关闭进程池pool.join()  # 主进程等待

爬虫实战1-多进程爬取 名言网相关推荐

  1. python功能性爬虫案例_Python爬虫实现使用beautifulSoup4爬取名言网功能案例

    本文实例讲述了Python爬虫实现使用beautifulSoup4爬取名言网功能.分享给大家供大家参考,具体如下: 爬取名言网top10标签对应的名言,并存储到mysql中,字段(名言,作者,标签) ...

  2. Python爬虫学习---------使用beautifulSoup4爬取名言网

    爬取名言网top10标签对应的名言,并存储到mysql中,字段(名言,作者,标签) #! /usr/bin/python3 # -*- coding:utf-8 -*-from urllib.requ ...

  3. Python爬虫实战+Scrapy框架 爬取当当网图书信息

    1.环境准备 1.在python虚拟环境终端使用 pip install scrapy下载scrapy依赖库 2.使用scrapy startproject book创建scrapy心目工程 3.使用 ...

  4. 爬虫实战6:爬取英雄联盟官网五个位置的综合排行榜保存到excel

    申明:资料来源于网络及书本,通过理解.实践.整理成学习笔记. 文章目录 英雄联盟官网 获取一个位置的综合排行榜所有数据(上单为例) 获取所有位置的综合排行榜所有数据 英雄联盟官网 获取一个位置的综合排 ...

  5. 爬虫实战5:爬取全部穿越火线武器的图片以武器名称命名保存到本地文件

    申明:资料来源于网络及书本,通过理解.实践.整理成学习笔记. 文章目录 穿越火线官网 完整代码 运行结果 穿越火线官网 完整代码 import requests# 循环33次,官网武器库展示有33页 ...

  6. 转 Python爬虫实战一之爬取糗事百科段子

    静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...

  7. 《python爬虫实战》:爬取贴吧上的帖子

    <python爬虫实战>:爬取贴吧上的帖子 经过前面两篇例子的练习,自己也对爬虫有了一定的经验. 由于目前还没有利用BeautifulSoup库,因此关于爬虫的难点还是正则表达式的书写. ...

  8. python爬虫实战之多线程爬取前程无忧简历

    python爬虫实战之多线程爬取前程无忧简历 import requests import re import threading import time from queue import Queu ...

  9. Python爬虫实战一之爬取糗事百科段子

    点我进入原文 另外, 中间遇到两个问题: 1. ascii codec can't decode byte 0xe8 in position 0:ordinal not in range(128) 解 ...

最新文章

  1. Java基础部分自测题(持续更新)
  2. 学术与技术(与队长交流偶得)
  3. Android Studio出现UnsupportedClassVersionError Unsupported major.minor version 52.0
  4. 织梦cms第四版仿七猫技术导航源码 附安装教程
  5. 计算机辅助设计与制造专业课程,《计算机辅助设计与制造》课程实验指导书
  6. 1.5 Linux文件目录创建与删除
  7. react.js 表单验证-登录框
  8. Linux之ping命令
  9. 使用EXCEL画图的简要方法
  10. 解读arduino读取模拟信号实例
  11. 力扣575. 分糖果
  12. 小胡时隔两年的第二篇Blog
  13. Django:get() returned more than one Session -- it returned 8
  14. [附源码]java毕业设计校园征兵及退役复原管理系统
  15. Plantuml类图用法
  16. PTA 6-9 递归计算P函数 (10分)
  17. 蓝牙芯片排行_7月TWS硅麦出货量排行榜出炉
  18. python可视化工具:matplotlib+pyecharts使用详解
  19. 基于java的springboot餐厅座位预定系统毕业设计springboot开题报告
  20. Java入门教程笔记(一)

热门文章

  1. 科学计算机怎么还原,怎么恢复win7系统计算器快捷键的详细
  2. 安全编排自动化与响应 (SOAR) 技术解析
  3. nyoj-655-光棍的yy(大数)
  4. 大学物理实验——旋光仪的使用
  5. 双色球彩票中奖小程序
  6. 计算两个矩阵的行向量之间的欧式距离
  7. 谷歌平板nexus 7(一代)上手动刷ubuntu desktop arm
  8. 接口和抽象类应用场景
  9. Android 8.1开启Bluetooth A2DP sink
  10. 2008国庆赤壁咸宁旅游