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 25 Python
Python中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
图文讲解选择排序算法的原理及在Python中的实现
May 04 Python
python smtplib模块自动收发邮件功能(二)
May 22 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
在django中,关于session的通用设置方法
Aug 06 Python
Python dict和defaultdict使用实例解析
Mar 12 Python
关于matplotlib-legend 位置属性 loc 使用说明
May 16 Python
Python基础教程之输入输出和运算符
Jul 26 Python
Appium+Python实现简单的自动化登录测试的实现
Jan 26 Python
python基础之文件处理知识总结
May 23 Python
Python NumPy灰度图像的压缩原理讲解
Aug 04 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 高级课程笔记 面向对象
2009/06/21 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
2014/01/14 PHP
php随机显示指定文件夹下图片的方法
2015/07/13 PHP
PHP全功能无变形图片裁剪操作类与用法示例
2017/01/10 PHP
PHP PDOStatement::execute讲解
2019/01/31 PHP
laravel5.0在linux下解决.htaccess无效和去除index.php的问题
2019/10/16 PHP
javascript 拖放效果实现代码
2010/01/22 Javascript
jquery实现metro效果示例代码
2013/09/06 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
Javascript实现图片轮播效果(一)让图片跳动起来
2016/02/17 Javascript
Jquery插件仿百度搜索关键字自动匹配功能
2016/05/11 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
javaScript生成支持中文带logo的二维码(jquery.qrcode.js)
2017/01/03 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
js实现鼠标拖拽多选功能示例
2017/08/01 Javascript
JavaScript全屏和退出全屏事件总结(附代码)
2017/08/17 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
2019/05/10 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
Python中的is和id用法分析
2015/01/26 Python
Python多线程结合队列下载百度音乐的方法
2015/07/27 Python
Python中__slots__属性介绍与基本使用方法
2018/09/05 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
Python中常用的os操作汇总
2020/11/05 Python
护理专业毕业生推荐信
2013/10/31 职场文书
运动会致辞稿50字
2014/02/04 职场文书
利群广告词
2014/03/20 职场文书
优秀高中学生评语
2014/12/30 职场文书
社区重阳节活动总结
2015/03/24 职场文书
董事长秘书工作总结
2015/08/14 职场文书
正确使用MySQL update语句
2021/05/26 MySQL