python网页文本爬虫

合集下载

Python爬虫入门案例:爬取某网站付费文档内容保存PDF

Python爬虫入门案例:爬取某网站付费文档内容保存PDF

Python爬⾍⼊门案例:爬取某⽹站付费⽂档内容保存PDF 知识点:requestscss选择器第三⽅库:requests >>> pip install requestsparsel >>> pip install parselpdfkit >>> pip install pdfkit开发环境:版本:anaconda5.2.0(python3.6.5)编辑器:pycharm (安装包/安装教程/激活码/使⽤教程/插件[翻译插件/主题/汉化包])软件环境: wkhtmltopdf 把html⽂件转成pdf本节课上课流程思路:⼀. 数据来源分析确定要爬⽬标: ⽂档内容这些⽂档数据内容是可以从哪⾥获取的分析数据的过程:1. ⿏标右键点击检查或者F12 打开开发者⼯具选择 network2. 通过开发者⼯具进⾏搜索(相关⼀些数据) 虽然返回数据 (字体编码)3. 搜索没有返回数据可以查看本⾝⽹址发送请求服务器返回的数据内容4. 分析多个⽂章的url地址区别请求url地址情况⼆. 代码实现过程1. 发送请求, 对于⽂章列表页⾯发送请求2. 获取数据, 获取⽹页源代码3. 解析数据, 提取⽂章url地址或者⽂章标题4. 发送请求, 对于⽂章详情页url地址发送请求5. 获取数据, 获取⽹页源代码6. 解析数据, 提取⽂章内容7. 保存数据, 保存成html⽂件内容8. 保存PDF, 需要把html⽂件转成PDF⽂件内容9. 多页爬取导⼊模块import requests # 数据请求模块第三⽅模块 pip install requests 在CMD⾥⾯即可安装import parsel # 数据解析模块第三⽅模块 pip install parselimport os # ⽂件操作模块内置模块import pdfkit1. 发送请求, 对于⽂章列表页⾯发送请求# 请求url地址url = 'https:///zlist-55-1.html'# 携带请求头参数 headers 请求头是字典类型键值对形式⼀个关键字对应值中间是⽤:隔开的# User-Agent 浏览器的基本信息# 请求头是为了把python代码伪装成浏览器对于服务器发送请求 (披着⽺⽪狼)headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36'}# 请求⽅式: 常见 get请求 post请求response = requests.get(url=url, headers=headers)# <Response [200]> response响应对象 <> 200 状态码表⽰请求成功# 获取的是响应体的⽂本数据 (乱码) 转码2. 获取数据, 获取⽹页源代码 response.text (html字符串数据内容)print(response.text)3. 解析数据, 提取⽂章url地址或者⽂章标题# 解析数据⽅法: re正则表达式[可以直接匹配字符串数据内容] css选择器 xpath (对于html字符串数据进⾏数据转换)# 如果你是想要从事相关⼯作招聘需求有⼀个要求 re css xpath 都要会selector = parsel.Selector(response.text) # 把html字符串数据进⾏数据转换 selector 对象# attr(href) 属性选择器获取a标签⾥⾯的href属性 css语法在VIP课程都⼀节课内容 (2.5⼩时内容)# getall() 获取所有返回列表匹配多个数据都是返回列表href = selector.css('.d-flex h2 a::attr(href)').getall()[:-2]4. 发送请求, 对于⽂章详情页url地址发送请求for index in href:response_1 = requests.get(url=index, headers=headers)5. 获取数据, 获取⽹页源代码print(response_1.text)6. 解析数据, 提取⽂章内容selector_1 = parsel.Selector(response_1.text)获取⽂章标题 get() 获取⼀个返回的字符串数据title = selector_1.css('.content-page-header-div h1::text').get()content = selector_1.css('.content-page-main-content-div').get()html_content = html_str.format(article=content)7. 保存数据, 保存成html⽂件内容# ⽂件路径以及⽂件名后缀html_path = html_filename + title + '.html'pdf_path = pdf_filename + title + '.pdf'with open(html_path, mode='w', encoding='utf-8') as f:f.write(html_content)8. 保存PDF, 需要把html⽂件转成PDF⽂件内容# 配置软件指定软件位置config = pdfkit.configuration(wkhtmltopdf=r'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe')# 把html⽂件⾥⾯的内容转成pdf 保存到 pdf⽂件夹pdfkit.from_file(html_path, pdf_path, configuration=config) print('正在保存: ', title)。

Python网络爬虫的医疗健康信息抓取与挖掘技巧

Python网络爬虫的医疗健康信息抓取与挖掘技巧

Python网络爬虫的医疗健康信息抓取与挖掘技巧随着互联网的发展,医疗健康信息的获取对于人们的生活越来越重要。

Python网络爬虫作为一种强大的自动化工具,能够帮助我们从互联网上高效地抓取和挖掘医疗健康相关的信息。

本文将探讨使用Python网络爬虫抓取与挖掘医疗健康信息的技巧。

一、选择合适的网站和页面分析结构在开始之前,我们首先需要选择合适的医疗健康网站。

一些可信赖的健康网站如世界卫生组织官网、医学期刊官网等,它们通常提供权威、可靠的医疗健康信息。

此外,对于医院、诊所等机构的官方网站也是我们抓取数据的好选择。

在选择好网站后,我们需要进行页面分析,了解网站的结构和页面元素。

通过审查元素、查看网页源代码等方式,我们可以获得页面的HTML结构和CSS样式信息。

这对于后续编写爬虫代码是非常重要的。

二、使用Python库进行网页抓取Python提供了许多强大的库,如Requests、urllib等,可以帮助我们从网站上获取页面内容。

我们可以使用这些库中的函数发送HTTP请求,获取页面的HTML代码,然后将其保存到本地文件或者在内存中进行处理。

三、解析HTML并提取所需信息从网页中获取到的HTML代码通常是一片混乱的标签和文本。

为了提取出我们需要的信息,我们可以使用Python中的解析库,如BeautifulSoup、Scrapy等。

这些库可以帮助我们解析HTML,提供简洁的API来选择和提取特定元素。

四、处理动态加载的内容有些网站的内容是通过JavaScript动态加载的,这就需要我们模拟浏览器的行为来获取到完整的页面。

Selenium是一个非常强大的Python库,可以模拟浏览器的行为,加载并执行JavaScript代码,从而获取动态加载的内容。

五、处理页面反爬虫机制为了防止大规模的数据抓取,一些网站会采取反爬虫机制。

常见的反爬虫手段包括IP封锁、验证码、请求频率限制等。

为了应对这些阻碍,我们可以使用代理IP池、验证码识别、设置请求头等方式来绕过限制,并保证数据的抓取效率和稳定性。

Python 入门网络爬虫之精华版

Python 入门网络爬虫之精华版

∙查找域名对应的IP地址。

∙向IP对应的服务器发送请求。

∙服务器响应请求,发回网页内容。

∙浏览器解析网页内容。

网络爬虫要做的,简单来说,就是实现浏览器的功能。

通过指定url,直接返回给用户所需要的数据,而不需要一步步人工去操纵浏览器获取。

此外,对于带有查询字段的url,get请求一般会将来请求的数据附在url之后,以?分割url 和传输数据,多个参数用&连接。

2. 对于登陆情况的处理2.1 使用表单登陆这种情况属于post请求,即先向服务器发送表单数据,服务器再将返回的cookie存入本地。

使用cookie登陆,服务器会认为你是一个已登陆的用户,所以就会返回给你一个已登陆的内容。

因此,需要验证码的情况可以使用带验证码登陆的cookie解决。

若存在验证码,此时采用response = requests_session.post(url=url_login, data=data)是不行的,做法应该如下:4. 对于断线重连不多说。

或者这样我们就可以使用multi_session或multi_open对爬虫抓取的session或opener进行保持。

5. 多进程抓取这里针对华尔街见闻进行多进程抓取的实验对比:Python多进程抓取与Java多进程抓取相关参考:关于Python和Java的多进程多线程计算方法对比6. 对于Ajax请求的处理对于“加载更多”情况,使用Ajax来传输很多数据。

它的工作原理是:从网页的url加载网页的源代码之后,会在浏览器里执行JavaScript程序。

这些程序会加载更多的内容,“填充”到网页里。

这就是为什么如果你直接去爬网页本身的url,你会找不到页面的实际内容。

这里,若使用Google Chrome分析”请求“对应的链接(方法:右键→审查元素→Network→清空,点击”加载更多“,出现对应的GET链接寻找Type为text/html的,点击,查看get 参数或者复制Request URL),循环过程。

Python网络爬虫中的Mitmproxy技巧

Python网络爬虫中的Mitmproxy技巧

Python网络爬虫中的Mitmproxy技巧Mitmproxy是一款基于Python开发的命令行HTTP代理服务器,可以帮助网络爬虫拦截、修改和查看HTTP流量。

在爬虫开发中,利用Mitmproxy技巧能够更加高效地获取需要的数据、检查HTTP请求和响应、模拟用户行为,甚至还可以进行反爬虫的操作。

本文将从这些方面分别介绍如何利用Mitmproxy技巧,帮助网络爬虫快速高效地完成任务。

一、拦截并修改HTTP流量Mitmproxy最基本的功能是拦截并修改HTTP流量,用以查看、分析网页的请求和响应。

安装好Mitmproxy后,只需在命令行窗口中执行`mitmproxy`命令,程序即开始运行。

然后将浏览器的HTTP代理设置为127.0.0.1:8080,并打开需要爬取的页面,此时Mitmproxy已经拦截了浏览器和服务器之间的HTTP流量。

可以使用各种快捷键查看请求和响应的细节,也可以使用编辑器对请求和响应进行修改。

比如,有时候需要模拟用户在网页上进行搜索的操作,原始请求中的搜索关键字需要动态的更改,用以获取更多的信息。

此时只需使用`e`键编辑请求,将需要搜索的关键字更改即可。

同样的,可以修改响应中的数据,比如将需要的文本信息保存为本地文件或者加入关键字高亮等操作。

二、模拟用户行为利用Mitmproxy工具,还可以轻松模拟用户行为,用以爬取需要的数据。

通过对浏览器的代理设置,可以将HTTP请求导向到Mitmproxy服务器上,从而获取到需要的数据。

此时需要模拟用户登录和操作进行数据获取,因此需要使用交互式代理模式,使用`mitmweb`命令启动web界面,并在浏览器中访问该界面。

在这个界面上可以通过双击数据包或在右侧的控制台中输入Python脚本来操作请求和响应以实现模拟用户行为。

比如,在需要抓取的数据有翻页操作时,只需在控制台中编写Python脚本,模拟用户翻页操作,将多个页面的数据合并到一起,从而达到获取更多数据的目的。

Python网络爬虫技术 第1章 Python爬虫环境与爬虫介绍

Python网络爬虫技术 第1章 Python爬虫环境与爬虫介绍
Agent值伪装成一般用户登录网站时使用的User-Agent值。 ➢ 调整访问频度:通过备用IP测试网站的访问频率阈值,然后设置访问频率比阈值略低。这种方法既能保证
大数据挖掘专家
12
网站反爬虫的目的与手段
3. 通过验证码校验反爬
有部分网站不论访问频度如何,一定要来访者输入验证 码才能继续操作。例如12306网站,不管是登陆还是购 票,全部需要验证验证码,与访问频度无关。
大数据挖掘专家
13
网站反爬虫的目的与手段
4. 通过变换网页结构反爬
一些社交网站常常会更换网页结构,而爬虫大部分情况下都需要通过网页结构来解析需要的数据,所以这种 做法也能起到反爬虫的作用。在网页结构变换后,爬虫往往无法在原本的网页位置找到原本需要的内容。
树形式,将表单区分为单属性表单和多属性表单,分别进行处理,从中提取表单各字段值。
大数据挖掘专家
7
爬虫的合法性与robot.txt协议
1. 爬虫的合法性
目前,多数网站允许将爬虫爬取的数据用于个人使用或者科学研究。但如果将爬取的数据用于其他用途,尤 其是转载或者商业用途,严重的将会触犯法律或者引起民事纠纷。 以下两种数据是不能爬取的,更不能用于商业用途。 ➢ 个人隐私数据:如姓名、手机号码、年龄、血型、婚姻情况等,爬取此类数据将会触犯个人信息保护法。 ➢ 明确禁止他人访问的数据:例如用户设置了账号密码等权限控制,进行了加密的内容。 还需注意版权相关问题,有作者署名的受版权保护的内容不允许爬取后随意转载或用于商业用途。
11
网站反爬虫的目的与手段
2. 通过访问频度反爬
➢ 普通用户通过浏览器访问网站的速度相对爬虫而言要慢的多,所 以不少网站会利用这一点对访问频度设定一个阈值,如果一个IP 单位时间内访问频度超过了预设的阈值,将会对该IP做出访问限 制。

Python网络爬虫技术 第4章 常规动态网页爬取

Python网络爬虫技术 第4章 常规动态网页爬取
18
元素选取
1.单个元素查找
获取“/search/books”响应的网页搜索框架元素,如图所示。
19
元素选取
2.多个元素查找
查找“/search/books”网页第一行多个信息,复制到selector的信息是 “#nav”如图所示。
15
页面操作
2.执行JavaScript
Selenium库中的execute_script方法能够直接调用JavaScript方法来实现翻页到底部、弹框等操作。比如 在“/search/books”网页中通过JavaScript翻到页面底部,并弹框提示爬 虫。
法。
方法
作用
title_is
标题是某内容
title_contains
标题包含某内容
presence_of_element_located
元素加载出,传入定位元组,如(By.ID, 'p')
visibility_of_element_locLeabharlann ted元素可见,传入定位元组
visibility_of
传入元素对象
10
逆向分析爬取动态网页
• 打开“Request URL”URL网址信息,找到需要爬取的信息,如图所示。
• 爬取“”首页新书模块的书名、作者和价格,如代码 4-1所示。
11
目录
1
逆向分析爬取动态网页
2
使用Selenium库爬取动态网页
3
存储数据至MongoDB数据库
20
预期的条件
在自动化Web浏览器时,不需要手动编写期望的条件类,也不必为自动化创建实用程序包,Selenium库
提供了一些便利的判断方法如表 4-2所示,在爬取“/search/books”网页

python爬虫怎么赚钱

python 爬虫怎么赚钱
python 爬虫是什幺意思
网络爬虫的工作原理
网络爬虫,即Web Spider,是一个很形象的名字。

把互联网比喻成一个蜘蛛网,那幺Spider 就是在网上爬来爬去的蜘蛛。

网络蜘蛛是通过网页的链接地址来寻找网页的。

从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。

如果把整个互联网当成一个网站,那幺网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。

这样看来,网络爬虫就是一个爬行程序,一个抓取网页的程序。

网络爬虫的基本操作是抓取网页。

那幺如何才能随心所欲地获得自己想要的页面?先从URL 开始。

抓取网页的过程其实和读者平时使用IE 浏览器浏览网页的道理是一样的。

比如说你在浏览器的地址栏中输入baidu 这个地址。

打开网页的过程其实就是浏览器作为一个浏览的客户端,向服务器端发送了一次请求,把服务器端的文件抓到本地,再进行解释、展现。

HTML 是一种标记语言,用标。

Python网络爬虫技术之模拟登录


03
模拟登录的实现
获取登录页面
01
打开浏览器开发者 工具
在浏览器中打开要登录的网页, 按下F12键打开开发者工具。
02
定位登录表单
03
获取登录URL
在开发者工具中找到登录表单, 通常在HTML的`<form>`标签内 。
复制登录表单的action属性中的 URL,这是提交登录表单的地址 。
解析登录表单
模拟登录技术可以有效地解 决一些网站反爬虫机制的问 题,提高爬虫程序的效率和
稳定性。
然而,模拟登录技术也存在 一些限制和挑战,如需要处 理验证码、IP被封等问题,同 时还需要遵守网站的robots
协议和相关法律法规。
展望
随着网络技术的发展,越来越多的网站开始采用 反爬虫机制,对爬虫程序提出了更高的要求。因 此,未来的模拟登录技术需要更加智能化、自动 化和安全化。
模拟登录的基本步骤
发送请求
使用Python的 requests库或其他网 络库向目标网站发送 请求,获取登录页面 。
解析页面
使用HTML解析库( 如BeautifulSoup或 lxml)解析登录页面 ,获取登录表单的元 素和属性。
填充表单
根据解析结果,构造 POST请求数据,包 括用户名、密码等。
还可以加强与浏览器自动化工具的整合,提高模 拟登录的稳定性和效率,同时更好地模拟用户的 真实行为。
可以通过深度学习、自然语言处理等技术手段, 提高自动填写表单的准确性和效率,同时减少对 验证码等人工干预的依赖。
最后,需要更加重视网络安全和隐私保护问题, 遵守相关法律法规和伦理规范,确保模拟登录技 术的合法性和道德性。
Python网络爬虫技术 之模拟登录

Python网络爬虫的数据可视化与展示方法

Python网络爬虫的数据可视化与展示方法Python网络爬虫的数据可视化与展示方法在当今信息时代,大量的数据被生成和存储,而在这些数据中蕴含着各种有价值的信息与洞察力。

而Python作为一门强大的编程语言,具备了强大的网络爬虫能力,能够从互联网上抓取数据。

然而,光是获取数据还远远不够,我们还需要找到一种方法将这些数据进行适当的可视化与展示,以便更好地理解和分析这些数据。

本文将会介绍一些Python网络爬虫的数据可视化与展示方法,帮助读者更好地应用Python进行数据处理和分析。

一、数据爬取与处理在进行数据可视化与展示之前,我们首先需要从互联网上爬取数据。

Python提供了很多强大的库和工具,如Requests、BeautifulSoup和Scrapy等,可以帮助我们实现数据爬取的功能。

一旦获取了数据,我们还需要进行数据处理,以便后续的可视化和展示。

例如,我们可以使用Pandas库对数据进行清洗、过滤和转换等操作,使得数据更符合我们的需求。

二、基本的数据可视化方法Python中提供了一些基本的数据可视化方法,如Matplotlib和Seaborn等,可以帮助我们绘制各种图表以展示数据。

Matplotlib是Python中最常用的绘图库之一,可以绘制线图、散点图、柱状图等各种图表。

Seaborn则可以为Matplotlib提供更加美观和专业的样式,使得图表的可读性和美观度更高。

三、交互式数据可视化除了基本的静态图表之外,我们还可以使用一些交互式数据可视化的工具,如Plotly和Bokeh等。

这些工具能够生成动态和可交互的图表,使得用户可以对图表进行缩放、旋转等操作,并可以通过鼠标悬停查看更详细的数据信息。

此外,这些工具还支持导出为HTML文件,方便在网页上展示和分享。

四、地理数据可视化对于包含地理信息的数据,我们可以使用一些地理数据可视化的工具,如Basemap和Folium等。

Basemap可以绘制地图,并在地图上标注点、绘制线等,从而更好地展现地理信息。

Python爬虫(三)——数据解析

Python爬⾍(三)——数据解析1. re模块之前我们在python基础中介绍过正则表达式,⽽re模块可以使⽤正则表达式对字符串进⾏很好的筛选。

re模块的使⽤可以分为两种:第⼀种是对象式的⽅式,第⼆种是函数式的⽅式。

之前已经介绍过正则模块的简单使⽤,我们在这⾥就直接进⾏案例操作。

通过⽹页分析发现每⼀个图⽚的地址都被放在了该标签下。

在浏览器地址栏中输⼊该图⽚的地址就可以找到这个图⽚。

现在图⽚已经找到了,下⼀步就是对图⽚进⾏下载。

那么如何通过代码去实现呢?url='https:///biaoqing/lists/page/6.html'resp=requests.get(url).textprint(resp)通过刚开始打印的控制台的内容发现浏览器中的代码结构与控制台打印的并不太⼀样。

因此我们在⽹页源代码中查看我们会发现每个图⽚的 URL 地址都在 data-original这个标签中,因此我们对该属性中的内容进⾏正则匹配,正则匹配规则为<img class="ui image lazy" data-original="(.*?)" 通过re.findall()来获得匹配到的内容,括号内的参数主要有三个,第⼀个是正则表达式,第⼆个是需要匹配的内容,第三个是匹配规则,在这⾥我们⼀般只需要记住第⼀个和第⼆个就可以了。

resp=requests.get(url)img_src=re.findall('<img class="ui image lazy" data-original="(.*?)"',resp.text,re.S)匹配到的内容是⼀个列表,再遍历这个列表,依次对列表中的图⽚地址发送请求,因为是图⽚,所以它是⼆进制的形式,因此我们以⼆进制的形式进⾏保存,具体的完整代码请看⽂末附录⼀:for src in img_src:src_filename=src.rsplit('/')[-1]img_content=requests.get(src)with open(f'表情包\\第{page}页\\{src_filename}',mode='wb') as f:f.write(img_content.content)re模块对于新⼿来说,我们只需要记住表达式 .* ?就可以了,将需要匹配的内容以 .* ?的形式,re模块就会进⾏贪婪匹配。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Python爬虫
1, python爬虫介绍:、
网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动的抓取万维网
信息的程序或者脚本。各大搜索引擎都用爬虫缓存各种url,提供搜索服务。高级爬虫技术
难度是很高的,要考虑很多,比如连接优化,代理服务器,大数据量下爬取优化,站点爬取
规则设计,但是基础爬虫重点只是实现信息抓取保存和处理,爬取规则通常很简单。
以小说网站爬取为例,首先需要掌握python基础,比如urllib使用,python进行字符串操
作,复杂一点使用正则表达式。还有就是基本的程序逻辑。具备这三点就能开始爬小说。

爬虫代码示例
首先贴上完整代码:
importurllib
import urllib2
importos
import time
import sys

defgetHtml(url):
page = urllib.urlopen(url)
html = page.read()
returnhtml.decode('gbk').encode('utf-8') + '\r\n'

definterstr(src, begin, end):
index1 = src.find(begin)
if index1 is -1:
return None
index1 += len(begin)
tmp = src[index1:]
index2 = tmp.find(end)
if index2 is -1:
return None
dst = tmp[:index2]
returndst
defgetTitle(html):
title = interstr(html, 'title = " ', '";')
if title is None:
return None
return title

defgetNextPage(html):
pageNum = interstr(html, 'next_page = "', '.html";')
bookID = interstr(html, 'bookid = "', '";')
ifpageNum is None or bookID is None:
return None
nextPage = (url + bookID +pageNum)
returnnextPage

defgetContent(html):
data = interstr(html, '

', '
')
if data is None:
return None
data = data.replace('', '')
data = data.replace(' ', '\n')
data = data.replace('

', '')
return data + '\n'

defforstr(src, begin, end):
tmpSrc = src
strList = []
while True:
indexBegin = tmpSrc.find(begin)
ifindexBegin is -1:
break
indexBegin += len(begin)
tmp = tmpSrc[indexBegin:]
indexEnd = tmp.find(end)
ifindexEnd is -1:
break
tmpString = tmp[:indexEnd]
strList.append(tmpString)
tmpSrc = tmp
returnstrList
if __name__ == '__main__':
book =sys.argv[1]
url = sys.argv[2]
nextPage = url + (book)
html = getHtml(nextPage)
listSrc = interstr(html, '', '

')
listSrc = interstr(listSrc, '
', '
')
printlistSrc
myList = forstr(listSrc, '')
printmyList

2, 代码详解
defgetHtml(url):
page = urllib.urlopen(url)
html = page.read()
returnhtml.decode('gbk').encode('utf-8') + '\r\n'
函数功能是下载html页面,其中url参数是目标网址,使用urllib库,通常小说网站都是gbk
编码,读取小说章节网址,下载页面,下载的数据即页面源码,源码中的汉字通常是gbk
编码,需要转码UTF-8。

definterstr(src, begin, end):
index1 = src.find(begin)
if index1 is -1:
return None
index1 += len(begin)
tmp = src[index1:]
index2 = tmp.find(end)
if index2 is -1:
return None
dst = tmp[:index2]
returndst
函数功能是截取字符串,在src中截取begin和end字符串中间的数据。操作很初级,效率
比较低,但是思路很简单,功能都自己实现。

defgetTitle(html):
title = interstr(html, 'title = " ', '";if title is None:
return None
return title
函数功能,是截取章节名,功能也很简单,但是不同的网站的章节名截取规则不同。
defgetNextPage(html):
pageNum = interstr(html, 'next_page = "', '.html";')
bookID = interstr(html, 'book = "', '";')
ifpageNum is None or bookID is None:
return None
nextPage = (url + bookID +pageNum)
returnnextPage
获取下一章节的url,通常网站页面会有本章节内容,和上下章节的地址,将这些地址爬出
来,可以在循环中自动获取下一章节内容。

defgetContent(html):
data = interstr(html, '

', '
')
if data is None:
return None
data = data.replace('', '')
data = data.replace(' ', '\n')
data = data.replace('

', '')
return data + '\n'
解析下载源码中的小说文本内容,不同站点规则不同,匹配方案简单,只用字符串操作,可
以考虑正则表达式,但是,其实正则看起来还没这个直观。

分析之后的数据就可以追加写入文本,然后改成txt放到手机上看。
Python有一个安卓版的运行解释器,所以可以手机直接下载小说到本机。
这种爬虫,可以考虑更高级的方案,使用http长连接,下载速度会提高很多。
同时使用多线程,但是同步的时候很麻烦。
这个脚本用了很久,只要小说网站做得好,爬取的内容一般不会有错误,重复

相关文档
最新文档