目标任务:使用多进程下载金庸网各个版本(旧版、修订版、新修版)的小说

代码如下:

# -*- coding: utf-8 -*-
import requests
from lxml import etree
from multiprocessing import Pool
import os
import sys
reload(sys)
sys.setdefaultencoding('utf-8')headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0'}def download(title,url, filename):response = requests.get(url, headers=headers).texthtml = etree.HTML(response)pages = html.xpath('//div//p/text()')[2:]with open(filename, 'a') as f:f.write(title+'\n')for page in pages:with open(filename, 'a') as f:f.write(page+'\n')def main(url):start_url = 'http://www.jinyongwang.com'+urlsname = start_url.split('/')[-2]if sname.startswith('o'):folder = 'old/'if(not os.path.exists(folder)):os.makedirs(folder)elif sname.startswith('n'):folder = 'new/'if(not os.path.exists(folder)):os.makedirs(folder)else:folder = 'now/'if(not os.path.exists(folder)):os.makedirs(folder)filename = folder+sname+'.txt'base_url = 'http://www.jinyongwang.com'response = requests.get(start_url, headers=headers).texthtml = etree.HTML(response)urls = html.xpath('//ul[@class="mlist"]/li/a/@href')titles = html.xpath('//ul[@class="mlist"]/li//text()')for index,url in enumerate(urls):full_url = base_url+urltitle = titles[index]download(title, full_url, filename)if __name__ == '__main__':url01 = 'http://www.jinyongwang.com/'response = requests.get(url01, headers=headers).texthtml = etree.HTML(response)urls = html.xpath('//li[@class="book_li"]/p[3]//a/@href')pool = Pool()pool.map(main,urls)pool.close()pool.join()

结果展示:

转载于:https://www.cnblogs.com/xinyangsdut/p/7766123.html

Python爬虫实例(六)多进程下载金庸网小说相关推荐

  1. 使用 requests+lxml 库的 Python 爬虫实例(以爬取网页连载小说《撒野》为例)

    需求目标 介绍使用 requests 库与 lxml 库进行简单的网页数据爬取普通框架与爬虫实例,本文以爬取网页连载小说<撒野>为例~ 当然有很多小说基本都能找到现成的 .txt 或者 . ...

  2. Python爬虫实例: 爬取“最好大学网”大学排名

    实例2 爬取大学排名 上海交通大学设计了一个"最好大学网",上面列出了当前的大学排名.我们要设计爬虫程序,爬取大学排名信息. 爬虫功能要求: 输入:大学排名URL链接 输出:大学排 ...

  3. python爬虫实例练习:爬取慕课网课程名称以及对应的链接

    1.安装与开发环境 模块安装: bs4 解析库安装:pip install bs4 开发环境: python 3.x + pycharm ps:文章来源于小编的头条号:"python数据科学 ...

  4. Python 爬虫十六式 - 第八式:实例解析-全书网

    实例解析- 全书网 学习一时爽,一直学习一直爽   Hello,大家好,我是Connor,一个从无到有的技术小白.前面我们就算是把所有的网页访问与网页解析的方法给大家讲完了.为了帮助大家更好的使用这些 ...

  5. Python 爬虫十六式 - 第八式:实例解析 - 全书网

    实例解析- 全书网 学习一时爽,一直学习一直爽   Hello,大家好,我是Connor,一个从无到有的技术小白.前面我们就算是把所有的网页访问与网页解析的方法给大家讲完了.为了帮助大家更好的使用这些 ...

  6. Python爬虫实战六之抓取爱问知识人问题并保存至数据库

    大家好,本次为大家带来的是抓取爱问知识人的问题并将问题和答案保存到数据库的方法,涉及的内容包括: Urllib的用法及异常处理 Beautiful Soup的简单应用 MySQLdb的基础用法 正则表 ...

  7. Python爬虫入门六之Cookie的使用

    大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在 ...

  8. Python爬虫十六式 - 第三式:Requests的用法

    Requests: 让 HTTP 服务人类 学习一时爽,一直学习一直爽   Hello,大家好,我是Connor,一个从无到有的技术小白.今天我们继续来说我们的 Python 爬虫,上一次我们说到了 ...

  9. python爬虫进阶案例,Python进阶(二十)-Python爬虫实例讲解

    #Python进阶(二十)-Python爬虫实例讲解 本篇博文主要讲解Python爬虫实例,重点包括爬虫技术架构,组成爬虫的关键模块:URL管理器.HTML下载器和HTML解析器. ##爬虫简单架构 ...

  10. Python 爬虫十六式 - 第七式:RE:用匹配来演绎编程的艺术

    RE:用匹配来演绎编程的艺术 学习一时爽,一直学习一直爽   Hello,大家好,我是 Connor,一个从无到有的技术小白.上一次我们说到了 pyquery 今天我们将迎来我们数据匹配部分的最后一位 ...

最新文章

  1. php 读取stdclass,json - 在php中读取stdclass的问题?
  2. Docker极简入门
  3. 一个简单的HelloWorld程序
  4. linux-shell面试题 之二
  5. 揭开HTTPS的神秘面纱
  6. 怎么输入license_误执行了 rm fr /* 之后,除了跑路还能怎么办?!
  7. 利用python对excel文件进行操作_数据处理-对Excel文件读取和操作和存储(python版)...
  8. 机械工程师 舒尔电子_工程师专业分类,原来工程师也能这么“多才多艺”
  9. 如何使用kali的Searchsploit查找软件漏洞
  10. CAD怎么标注坐标?CAD坐标标注教程
  11. JAVA过滤机制——过滤器的概念、工作原理、生命周期
  12. Android初级教程 - 四大存储之SP存储
  13. A micro Lie theory for state estimation in robotics002
  14. 程序员跳槽频繁不稳定被质疑,一番话后HR哑口无言!
  15. 我要写整个中文互联网界最牛逼的JVM系列教程 | 「JVM与Java体系架构」章节:JVM的发展历程
  16. 基于卷积神经网络的多目标图像检测研究(三)
  17. 计算机cpu的速度越来越快 这导致,计算机一级笔试模拟题(1-6)
  18. mapbox 接入高德矢量地图实战
  19. iOS 6与iOS 7的增量更新的区别
  20. 导电聚合物中热电效应转换原理

热门文章

  1. JDBC原生连接与连接池介绍
  2. 即时语音提示软件php,即时语音提示校对专家
  3. How fast is a C++ extension by the PHP-CPP liberary?
  4. 【后台模板】免费开源好看的后台模板
  5. axure iphone8元件库_Axure中移动端原型设计方法(附IPhoneX和IPhone8最新模板)
  6. ubuntu定时清理内存脚本
  7. 传奇修改map地图教程_传奇服务端内NPC添加MAP地图说明
  8. Java实现文件复制功能
  9. 屏幕录像软件下载哪个比较好用
  10. windows C盘自动清理bat脚本