第一个小爬虫(改进版)——下书网下载小说v2

已知问题:

  1. 代理地址需要更新
  2. 中断只能重新开始
 1 import requests
 2 import urllib.request
 3 import re
 4 import os
 5 import string
 6 import time
 7 import random
 8 from urllib import request
 9
10 path = os.getcwd()  # 获取当前路径
11
12
13 def open_url(url):
14     proxy_list = [
15         {‘http‘: ‘112.85.129.9:9999‘},
16         {‘http‘: ‘113.105.202.7:3128‘},
17         {‘http‘: ‘180.121.115.181:48184‘},
18         {‘http‘: ‘123.162.168.192:40274‘},
19         {‘http‘: ‘115.207.77.72:8118‘},
20         {‘http‘: ‘112.85.129.9:9999‘},
21         {‘http‘: ‘61.184.109.33:61320‘},
22         {‘htpps‘: ‘58.218.201.188:‘},
23     ]
24     proxy = random.choice(proxy_list)
25     print(str(proxy))
26     px = request.ProxyHandler(proxy)
27     opener = request.build_opener(px)
28     opener.addheaders = [(‘User-Agent‘,
29                           ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36‘)]
30     request.install_opener(opener)
31     try:
32         page = request.urlopen(url,timeout=10)
33         html = page.read().decode(‘utf-8‘)
34         return html
35     except:
36         print("出错额!!!!!!!!!!!!!!!!!!!!!")
37         return get_txt(open_url(url))
38
39
40 def get_txt(html):
41     lst1 = str(r‘<head>[\s\S]*<title>.*</title>‘)
42     lst2 = (r‘<div id="tac">[\s\S]*<div class="info bottominfo">‘)
43     l1 = str(re.findall(lst1,html))
44     l1 = l1[51:].replace(‘\‘‘,‘‘).replace(‘\"‘, ‘‘).replace(‘>]‘,‘‘)
45     l1list = l1.split(‘,‘)[0]
46     l2 = str(re.findall(lst2,html))
47     l2 = l2[92:].replace(r‘\u3000\u3000‘,‘      ‘).replace(‘<br/><br/>‘,‘\n‘)[:-60]
48     l2 = re.sub(‘\*‘,‘ ‘,l2)
49     l2 = str(l2)
50     f = open(path+r‘\\%s.txt‘%(l5),‘a‘)
51     f.write(l1list)
52     f.write(‘\n\n‘)
53     f.write(l2)
54     f.write(‘\n\n\n‘)
55     print(l1list + ‘→→→下载完成→→→‘)
56
57 def get_titlename(html):
58     lst3 = str(r‘<head>[\s\S]*<title>.*</title>‘)
59     l3 = str(re.findall(lst3,html))
60     l3 = l3[43:].split(‘_‘)[0].replace(‘txt下载‘,‘\n  ——‘).replace(‘(‘,‘‘).replace(‘)‘,‘‘)
61     print(l3 + ‘→正在下载‘)
62     f = open(path+r‘\\%s.txt‘%(l5),‘a‘)
63     f.write(l3)
64     f.write(‘\n\n‘)
65     print(l3 + ‘→→→titlename下载完成→→→‘)
66
67 def get_txtname(html):
68     lst4 = str(r‘<head>[\s\S]*<title>.*</title>‘)
69     l4 = str(re.findall(lst4,html))
70     l5 = l4[43:].split(‘txt‘)[0]
71     f = open(path+r‘\\%s.txt‘%(l5),‘a‘)
72     f.close
73     return l5
74
75 if __name__ == ‘__main__‘:
76     print(‘\n使用说明:‘
77           ‘示例:《武道乾坤》,URL https://www.xiashu.la/2186/  ,该书目录为即为2186‘)
78     url0 = ‘https://www.xiashu.la‘
79     ml = input(‘请输入目录‘)
80     url1 = url0 + r‘/‘ + ml + r‘/‘
81     print(‘你输入的目录为:%s‘%url1)
82     chapters = input(‘请输入总章节数(示例80页,则输入80):‘)
83     chapters = int(chapters)
84     print("当前工作目录 : %s" % path)
85     get_txtname(open_url(url1))
86     l5 = get_txtname(open_url(url1))
87     get_titlename(open_url(url1))
88     for chapter in range(1,chapters+1):
89         url = url1 +‘read_‘+ str(chapter) + ‘.html‘
90         t = random.randint(1,2)
91         print(t)
92         time.sleep(1)#单位:秒
93         get_txt(open_url(url))

原文地址:https://www.cnblogs.com/lasttime/p/10717649.html

时间: 2024-11-10 00:56:57

第一个小爬虫(改进版)——下书网下载小说v2的相关文章

第一个小爬虫——下书网下载小说v1

第一个小爬虫,问题较多! import urllib.request import re import os import string import time import random path = os.getcwd() # 获取当前路径 def get_url(): def open_url(url): req = urllib.request.Request(url) req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0;

Python爬虫——第一个小爬虫01

Python小爬虫——贴吧图片的爬取 在对Python有了一定的基础学习后,进行贴吧图片抓取小程序的编写. 目标: 首先肯定要实现图片抓取这个基本功能 然后要有一定的交互,程序不能太傻吧 最后实现对用户所给的链接进行抓取 一.页面获取 要让python可以进行对网页的访问,那肯定要用到urllib之类的包.So先来个 import urllib urllib中有 urllib.urlopen(str) 方法用于打开网页并返回一个对象,调用这个对象的read()方法后能直接获得网页的源代码,内容与

Python第一个程序小爬虫

最近想上手Python.快速入门一门语言的方法就是写个小Demo.Python Demo必须是爬虫了.第一个小爬虫程序有些简陋,高手勿喷. 关于爬虫主要分为三个部分:根据队列中的URL爬取界面.获取内容.保存结果. 程序是以百度网站大全为种子URL,抓取页面中URL依次放入队列中,爬虫从URL队列依次取得新URL继续向外爬取. # -*- coding: utf-8 -*- import urllib2 import re import thread import time class HTML

Python实现简单的爬虫获取某刀网的更新数据

昨天晚上无聊时,想着练习一下Python所以写了一个小爬虫获取小刀娱乐网里的更新数据 [python] view plain copy #!/usr/bin/python # coding: utf-8 import urllib.request import re #定义一个获取网页源码的子程序 head = "www.xiaodao.la" def get(): data = urllib.request.urlopen('http://www.xiaodao.la').read(

python速成第二篇(小爬虫+文件操作+socket网络通信小例子+oop编程)

大家好,由于前天熬夜写完第一篇博客,然后昨天又是没休息好,昨天也就不想更新博客,就只是看了会资料就早点休息了,今天补上我这两天的所学,先记录一笔.我发现有时候我看的话会比较敷衍,而如果我写出来(无论写到笔记本中还是博客中,我都有不同的感觉)就会有不同的想法,我看书或者看资料有时候感觉就是有一种惰性,得过且过的感觉,有时候一个知识想不通道不明,想了一会儿,就会找借口给自己说这个知识不重要,不需要太纠结了,还是去看下一个吧,然后就如此往复下去,学习就会有漏洞,所以这更加坚定了我写博客来记录的想法.

python学习之爬虫(一) ——————爬取网易云歌词

接触python也有一段时间了,一提到python,可能大部分pythoner都会想到爬虫,没错,今天我们的话题就是爬虫!作为一个小学生,关于爬虫其实本人也只是略懂,怀着"Done is better than perfect"的态度硬着头皮开始了这篇文章的撰写!好了,废话不多说! 先说一下今天我们的目的,作为一个音痴但不影响我对于音乐的执着,所以今天我们爬取的是网易云音乐,我们将会通过代码爬取歌词并写入到本地. 作为新手,我很本能就打开页面复制了url,然后用Beautifulsou

今天来做一个PHP电影小爬虫。

今天来做一个PHP电影小爬虫.我们来利用simple_html_dom的采集数据实例,这是一个PHP的库,上手很容易.simple_html_dom 可以很好的帮助我们利用php解析html文档.通过这个php封装类可以很方便的解析html文档,对其中的html元素进行操作 (PHP5+以上版本)下载地址:https://github.com/samacs/simple_html_dom下面我们以 http://www.paopaotv.com 上的列表页 http://paopaotv.com

http 小爬虫

初学nodejs写一个http小爬虫,爬虫就是把网页上的代码爬下来. 代码: var http = require('http') //加载http模块var url = 'http://www.imooc.com/learn/713' http.get(url,function(res){   //get去请求url,此处以慕课网为例 var html = '' res.on('data',function(data){ html += data     //请求数据赋值给前面定义的html

HTTP小爬虫 ,nodejs学习(二)

使用nodejs抓取网页数据,这里用到cheerio,解析html十分好用,和jquery用法完全一致. 首先安装cheerio,在命令行中输入 npm install cheerio;(在nodejs根目录下输入该命令) 安装完成以后,我们来解析慕课网上http://www.imooc.com/learn/348,获取其上的课程信息. 代码如下: var http = require('http'); var cheerio = require('cheerio'); var url = 'h