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使用urllib2模块获取gravatar头像实例
Dec 18 Python
python实现爬虫下载漫画示例
Feb 16 Python
Python运用于数据分析的简单教程
Mar 27 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
WINDOWS 同时安装 python2 python3 后 pip 错误的解决方法
Mar 16 Python
Tornado协程在python2.7如何返回值(实现方法)
Jun 22 Python
python实现简单的文字识别
Nov 27 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
Pycharm保存不能自动同步到远程服务器的解决方法
Jun 27 Python
Python-Tkinter Text输入内容在界面显示的实例
Jul 12 Python
基于python图书馆管理系统设计实例详解
Aug 05 Python
Python Pandas pandas.read_sql函数实例用法
Jun 21 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中Fatal error session_start()错误解决步骤
2014/08/05 PHP
ThinkPHP实现附件上传功能
2017/04/27 PHP
js精度溢出解决方案
2012/12/02 Javascript
js 控制页面跳转的5种方法
2013/09/09 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
2014/06/05 Javascript
D3.js 从P元素的创建开始(显示可加载数据)
2014/10/30 Javascript
JavaScript实现页面5秒后自动跳转的方法
2015/04/16 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
JavaScript核心语法总结(推荐)
2016/06/02 Javascript
JS中使用mailto实现将用户在网页中输入的内容传递到本地邮件客户端
2016/10/08 Javascript
jquery实现折叠菜单效果【推荐】
2017/03/08 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
微信小程序之批量上传并压缩图片的实例代码
2018/07/05 Javascript
JS canvas绘制五子棋的棋盘
2020/05/28 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
2019/02/15 jQuery
js实现金山打字通小游戏
2020/07/24 Javascript
Windows下PyMongo下载及安装教程
2015/04/27 Python
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
python爬虫框架talonspider简单介绍
2017/06/09 Python
python matlibplot绘制多条曲线图
2021/02/19 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
浅谈numpy中函数resize与reshape,ravel与flatten的区别
2020/06/18 Python
Python csv文件记录流程代码解析
2020/07/16 Python
python 爬虫基本使用——统计杭电oj题目正确率并排序
2020/10/26 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
深入解读CSS3中transform变换模型的渲染
2016/05/27 HTML / CSS
采购员岗位职责
2013/11/15 职场文书
即兴演讲稿
2014/01/04 职场文书
如何写好优秀的创业计划书
2014/01/30 职场文书
县优秀教师事迹材料
2014/01/31 职场文书
大学生自我评价范文
2015/03/03 职场文书
2015年小学美术工作总结
2015/05/25 职场文书
苦儿流浪记读书笔记
2015/07/01 职场文书
入团申请书格式
2019/06/20 职场文书
如何在CocosCreator里画个炫酷的雷达图
2021/04/16 Javascript
深入解析MySQL索引数据结构
2021/10/16 MySQL