Python制作爬虫采集小说


Posted in Python onOctober 25, 2015

开发工具:python3.4
操作系统:win8
主要功能:去指定小说网页爬小说目录,按章节保存到本地,并将爬过的网页保存到本地配置文件。
被爬网站:http://www.cishuge.com/
小说名称:灵棺夜行
代码出处:本人亲自码的

import urllib.request
import http.cookiejar

import socket
import time
import re

timeout = 20
socket.setdefaulttimeout(timeout)

sleep_download_time = 10
time.sleep(sleep_download_time)
 
def makeMyOpener(head = {
 'Connection': 'Keep-Alive',
 'Accept': 'text/html, application/xhtml+xml, */*',
 'Accept-Language': 'en-US,en;q=0.8,zh-Hans-CN;q=0.5,zh-Hans;q=0.3',
 'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko'
}):
 cj = http.cookiejar.CookieJar()
 opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cj))
 header = []
 for key, value in head.items():
  elem = (key, value)
  header.append(elem)
 opener.addheaders = header
 return opener
 
def saveFile(save_path,txts):
 f_obj = open(save_path,'w+')
 for item in txts:
  f_obj.write(item+'\n')
 f_obj.close()
 
#get_code_list
code_list='http://www.cishuge.com/read/0/771/'
oper = makeMyOpener()
uop = oper.open(code_list,timeout=1000)
data = uop.read().decode('gbk','ignore')

pattern = re.compile('<li><a href="(.*?)".*?>(.*?)</a></li>',re.S)

items = re.findall(pattern,data)

print ('获取列表完成')
url_path='url_file.txt'

url_r=open(url_path,'r')
url_arr=url_r.readlines(100000)
url_r.close()
print (len(url_arr))

url_file=open(url_path,'a')

print ('获取已下载网址')

for tmp in items:
 save_path = tmp[1].replace(' ','')+'.txt'
 url = code_list+tmp[0]
 if url+'\n' in url_arr:
  continue
 print('写日志:'+url+'\n')
 url_file.write(url+'\n')
 opene = makeMyOpener()
 op1 = opene.open(url,timeout=1000)
 data = op1.read().decode('gbk','ignore')
 opene.close()
 pattern = re.compile('    (.*?)<br />',re.S)
 txts = re.findall(pattern,data)
 saveFile(save_path,txts)
 
url_file.close()

虽然代码还是有点瑕疵,还是分享给大家,一起改进

Python 相关文章推荐
Python内置函数的用法实例教程
Sep 08 Python
django model object序列化实例
Mar 13 Python
Python开发企业微信机器人每天定时发消息实例
Mar 17 Python
Python能做什么
Jun 02 Python
python如何处理程序无法打开
Jun 16 Python
Python装饰器结合递归原理解析
Jul 02 Python
Jmeter HTTPS接口测试证书导入过程图解
Jul 22 Python
python开发一款翻译工具
Oct 10 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
Jan 12 Python
Python 的 f-string 可以连接字符串与数字的原因解析
Feb 20 Python
python基础之停用词过滤详解
Apr 21 Python
Django框架模板用法详解
Jun 10 Python
Python验证企业工商注册码
Oct 25 #Python
日常整理python执行系统命令的常见方法(全)
Oct 22 #Python
Python六大开源框架对比
Oct 19 #Python
Python脚本暴力破解栅栏密码
Oct 19 #Python
python学习笔记之调用eval函数出现invalid syntax错误问题
Oct 18 #Python
在arcgis使用python脚本进行字段计算时是如何解决中文问题的
Oct 18 #Python
详解使用Python处理文件目录的相关方法
Oct 16 #Python
You might like
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
2012/10/03 PHP
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
php实现删除指定目录下相关文件的方法
2014/10/20 PHP
PDO防注入原理分析以及使用PDO的注意事项总结
2014/10/23 PHP
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
JS target与currentTarget区别说明
2011/08/28 Javascript
javascript分页代码(当前页码居中)
2012/09/20 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
2014/04/29 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
jQuery AJAX应用实例总结
2020/05/19 jQuery
[01:00:25]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS Liquid
2018/03/31 DOTA
windows上安装Anaconda和python的教程详解
2017/03/28 Python
Python操作mongodb数据库进行模糊查询操作示例
2018/06/09 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
python视频按帧截取图片工具
2019/07/23 Python
python数据持久存储 pickle模块的基本使用方法解析
2019/08/30 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
django 数据库 get_or_create函数返回值是tuple的问题
2020/05/15 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
Django缓存Cache使用详解
2020/11/30 Python
html5指南-7.geolocation结合google maps开发一个小的应用
2013/01/07 HTML / CSS
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
澳大利亚玩具剧场:Toy Playhouse
2019/03/03 全球购物
安踏官方商城:anta.cn
2019/12/16 全球购物
科室工作的个人自我评价
2013/10/30 职场文书
群众对十八届四中全会的期盼
2014/10/17 职场文书
社区活动总结范文
2015/05/07 职场文书
大学生学习十八届五中全会精神心得体会
2016/01/05 职场文书
Python Matplotlib绘制条形图的全过程
2021/10/24 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
2021/11/11 Python
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android