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字符串详细介绍
May 09 Python
Python中使用items()方法返回字典元素对的教程
May 21 Python
Python松散正则表达式用法分析
Apr 29 Python
ansible作为python模块库使用的方法实例
Jan 17 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
使用Python获取网段IP个数以及地址清单的方法
Nov 01 Python
Python中一般处理中文的几种方法
Mar 06 Python
python递归下载文件夹下所有文件
Aug 31 Python
基于PyTorch的permute和reshape/view的区别介绍
Jun 18 Python
可视化pytorch 模型中不同BN层的running mean曲线实例
Jun 24 Python
Python drop方法删除列之inplace参数实例
Jun 27 Python
Python 数据科学 Matplotlib图库详解
Jul 07 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实现MVC开发得最简单的方法――模型
2007/04/10 PHP
php加密解密实用类分享
2014/01/07 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
php实现QQ小程序发送模板消息功能
2019/09/18 PHP
JavaScript初学者需要了解10个小技巧
2010/08/25 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
2013/04/27 Javascript
JavaScript图片放大技术(放大镜)实现代码分享
2013/11/14 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
Angular2学习笔记——详解路由器模型(Router)
2016/12/02 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
[01:25]2014DOTA2国际邀请赛 zhou分析LGD比赛情况
2014/07/14 DOTA
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
pandas.DataFrame选取/排除特定行的方法
2018/07/03 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
使用Python调取任意数字资产钱包余额功能
2019/08/15 Python
python读取tif图片时保留其16bit的编码格式实例
2020/01/13 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
如何基于python对接钉钉并获取access_token
2020/04/21 Python
python+adb命令实现自动刷视频脚本案例
2020/04/23 Python
Python-jenkins模块之folder相关操作介绍
2020/05/12 Python
HTML5中Localstorage的使用教程
2015/07/09 HTML / CSS
台湾百利市购物中心:e-Payless
2017/08/16 全球购物
美国一家主打母婴用品的团购网站:zulily
2017/09/19 全球购物
支票、地址标签、包装纸和慰问卡:Current Catalog
2018/01/30 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
药学专业大学生个人的自我评价
2013/11/04 职场文书
大学社团活动总结
2014/04/26 职场文书
群众路线党员个人整改措施
2014/10/27 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS
关于Javascript闭包与应用的详解
2021/04/22 Javascript
Win10服务全部禁用了怎么启动?Win10服务全部禁用解决方法
2022/09/23 数码科技