Python爬虫抓取 python tutorial中文版,保存为word
看到了中文版的python tutorial,发现是网页版的,刚好最近在学习爬虫,想着不如抓取到本地
首先是网页的内容

查看网页源码后发现可以使用BeautifulSoup来获取文档的标题和内容,并保存为doc文件。
这里需要使用from bs4 import BeautifulSoup 来导入该模块
具体代码如下:
# 输出所在网址的内容
from bs4 import BeautifulSoup
def introduce(url):
res = requests.get(url)
res.encoding = 'utf-8'
soup = BeautifulSoup(res.text, 'html.parser')
title = soup.select('h1')[0].text
content = '\n '.join([p.text.strip() for p in soup.select('.section')])
#print(title)
#print(content)
接下来是使用for循环遍历所有符合的内容以获取目录所指向的链接,所得到的链接是不完整的,故给其加上主站的链接,生成有效的url,储存于列表address之中。这里我对比后使用了xpath来抓取目录的地址,故用 from lxml import etree 导入该模块
# 返回目录所对应的地址
def get_url(selector):
sites = selector.xpath('//div[@class="toctree-wrapper compound"]/ul/li')
address = []
for site in sites:
directory = ''.join(site.xpath('a/text()'))
new_url = site.xpath('a/@href')
address.append('http://www.pythondoc.com/pythontutorial3/' + ''.join(new_url))
return address
然后在主函数中调用get_url(),对其中的所有url遍历,调用introduce()函数,输出全部文本内容
def main():
url = 'http://www.pythondoc.com/pythontutorial3/index.html#'
html = requests.get(url)
html.encoding = 'utf-8'
selector = etree.HTML(html.text)
introduce(url)
url_list = get_url(selector)
for url in url_list:
introduce(url) if __name__ == '__main__':
main()
最后就是将输出的东西写到.doc中了,这里调用os模块,将写入文件的命令放置于introduce()函数中去
import os #将其放置于顶部
with open('python.doc', 'a+', encoding='utf-8') as f:
f.write(content)
至此,就完成了对中文版python tutorial内容的获取,成功写进本地文件中去,对于我这种经常性断网断点的人来说还是很不错的!还可以放在手机里看,哈哈哈
对于bs4可以直接在命令行使用 pip install bs4 命令进行安装
而在windows平台下 lxml 的安装会出现许多错误,建议在windows下Python的扩展包网站下载对应版本的lxml.whl文件,之后在本地使用 pip install *********** 进行安装,
注意:
*************代表的是安装文件的全称。
安装的时候再命令行下一定要切换到下载文件所在的目录下,否则会报错。
Python爬虫抓取 python tutorial中文版,保存为word的更多相关文章
- Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储
Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...
- python 爬虫抓取心得
quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quo ...
- Python爬虫----抓取豆瓣电影Top250
有了上次利用python爬虫抓取糗事百科的经验,这次自己动手写了个爬虫抓取豆瓣电影Top250的简要信息. 1.观察url 首先观察一下网址的结构 http://movie.douban.com/to ...
- python爬虫抓取哈尔滨天气信息(静态爬虫)
python 爬虫 爬取哈尔滨天气信息 - http://www.weather.com.cn/weather/101050101.shtml 环境: windows7 python3.4(pip i ...
- Python 爬虫: 抓取花瓣网图片
接触Python也好长时间了,一直没什么机会使用,没有机会那就自己创造机会!呐,就先从爬虫开始吧,抓点美女图片下来. 废话不多说了,讲讲我是怎么做的. 1. 分析网站 想要下载图片,只要知道图片的地址 ...
- Python爬虫抓取某音乐网站MP3(下载歌曲、存入Sqlite)
最近右胳膊受伤,打了石膏在家休息.为了实现之前的想法,就用左手打字.写代码,查资料完成了这个资源小爬虫.网页爬虫, 最主要的是协议分析(必须要弄清楚自己的目的),另外就是要考虑对爬取的数据归类,存储. ...
- python 爬虫抓取 MOOC 中国课程的讨论区内容
一:selenium 库 selenium 每次模拟浏览器打开页面,xpath 匹配需要抓取的内容.可以,但是特别慢,相当慢.作为一个对技术有追求的爬虫菜鸡,狂补了一些爬虫知识.甚至看了 scrapy ...
- Python爬虫 -- 抓取电影天堂8分以上电影
看了几天的python语法,还是应该写个东西练练手.刚好假期里面看电影,找不到很好的影片,于是有个想法,何不搞个爬虫把电影天堂里面8分以上的电影爬出来.做完花了两三个小时,撸了这么一个程序.反正蛮简单 ...
- python爬虫 抓取一个网站的所有网址链接
sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...
随机推荐
- NGUI的滚动条的制作(scroll bar script)
一,我们添加一个sprite,添加一个box collider,然后添加一个scroll bar script,我们来看看scroll bar script的属性 看到background和forgr ...
- typescript 深层次对象内层(N)转外层(N),支持多层级递归转换,多应用于多语言数据结构转换
如下数据结构转换 var a = { b: { en: 1, zh: 2, }, c: { en: 3, zh: 4, }, } //===> var b = { en: { b: 1, c: ...
- ES6——函数-参数
函数的参数: 1.参数扩展/数组展开 1)收集(剩余的)参数 function show(a,b,...args){} // 三点运算符 *Rest ...
- 1.报表TIBCO Jaspersoft Studio工具教程入门--生成jrxml和jasper文件 然后拖拽到项目中 跟ireport一样
转自:https://blog.csdn.net/KingSea168/article/details/42553781 2. 在接下来的教程中,我们将实现一个简单的JasperReports示例,展 ...
- 解决:Module not found: node_modules\sass-loader\package.json (directory description file)
npm uninstall node-sass npm install node-sass@latest
- Django 项目环境搭建
环境 mkvirtualenv -p python3.6 mytest # 创建虚拟环境 workon mytest # 进入虚拟环境 # 按照基础环境依赖 pip install django==1 ...
- Codeforces Round #393 (Div. 2) - C
题目链接:http://codeforces.com/contest/760/problem/C 题意:有n个烤串,并且每个烤串起初都放在一个火盆上并且烤串都正面朝上,现在定义p序列,p[i]表示在i ...
- 编译错误:warning C4005]ws2def.h(91): warning C4005: “AF_IPX”: 宏重定义 winsock.h(460) : 参见“AF_IPX”的前一个定义
[问题] ws2def.h(91): warning C4005: “AF_IPX”: 宏重定义: winsock2.h(460) : 参见“AF_IPX”的前一个定义 [原因] windows.h头 ...
- BZOJ2002 [HNOI2010] 弹飞绵羊
LCT access完了一定splay再用!!! 悲伤= = LCT裸题 把调出去设虚点n+1即可 //Love and Freedom. #include<cstdio> #includ ...
- Autoit脚本调用pscp上传小程序
linux上传文件用pscp上传相对麻烦,如下写了个脚本方便上传 代码如下: $fileURL=@ScriptDir & "pscp.ini" If (FileExists ...