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. Go语言中奇怪的if语句
  2. 微信第三方开发者该何去何从?
  3. 实现接口Controller定义控制器
  4. npm : 无法加载文件 D:\Program Files\nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本。
  5. SpringBootApplication注解
  6. Python数据结构学习笔记——树和图
  7. 修改ssh默认端口号
  8. java 文件下载漏洞,文件上传和下载漏洞
  9. python京东抢购脚本_五个月抢京东抢茅台心得
  10. 异想维度 java_Java实现多字段(维度)复杂排序
  11. mt4 指标 涨跌幅 颜色k线_通达信精选指标——彩色K线指标
  12. 如何使用dll ip转换_如何使用多功能转换插座更安全
  13. nn.Parameter的作用
  14. java并发AtomicReference
  15. SQLSERVER2008--日志收缩 or 日志清理
  16. c#读取文本文件出现乱码
  17. Maven安装(配置阿里仓库)
  18. 渗透测试工具Kali Linux安装与使用
  19. Unity 与 UE4 双引擎版本四叉树的创建与可视化
  20. 2019年python爬虫-我破解了中文裁判网数据挖掘-反爬技术哪些事情

热门文章

  1. max_delay/min_delay和input_delay/output_delay
  2. python提取指定内容
  3. JAVA练习242-到达终点
  4. 基于 db.session 进行查询
  5. Hibernate的Cascade
  6. error C2447: “{”: 缺少函数标题(是否是老式的形式表?)(转)
  7. 新合作系列!布朗熊搭档小黄人,萌出新高度
  8. JAVA开发之 1-JAVA语言发展史
  9. plsql 基础教程(二)
  10. Excel 2010 SQL应用029 查询区间条件