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 ...
随机推荐
- socket - Linux 套接字
总览 #include <sys/socket.h> mysocket = socket(int socket_family, int socket_type, int protocol) ...
- Nginx环境部署
下载Nginx wget nginx.tar.gz http://nginx.org/download/nginx-1.17.1.tar.gz 解压源码 tar -zxvf nginx-1.17.1. ...
- python代码整体左移或右移
IDE 是 PyCharm 选中代码块: 1)右移:直接 Tab 2)左移:Shift + Tab
- MySQL不支持的特性
MySQL 1.不支持物化视图. 2.不支持位图索引. 3.不支持并行查询. 4.不支持哈希关联,MySQL的所有关联都是嵌套循环关联.不过,可以通过建立一个哈希索引来曲线实现. 5.不允许对同一表同 ...
- Joyoshare HEIC Converter for Mac将HEIC照片转换成其他格式的方法
如何把HEIC格式的照片转换成其JPEG,PNG,GIF他格式呢?使用Joyoshare HEIC Converter for Mac破解版就可以,Joyoshare HEIC Converter是可 ...
- vue-葵花宝典
router-view 中包含 router-view 这种情况就可以 使用嵌套路由了 变化的视图中包含变化的视图 代码层面 router-view 中 包含router-view 路由childre ...
- ubuntu下安装pyaudio
首先安装依赖库,不安装依赖库会安装失败: sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocp ...
- mui is not defined
vue项目中引用mui.js,我是在main.js中这样引入的, 结果报错 查找资料,最后在mui.js的最后添加了这样一句 这是因为mui并不能像jquery那样作为全局对象存在,加上wi ...
- 【加密】RSA验签及加密
通过OpenSSL生成公私钥文件(如果没有OpenSSL工具建议下载Cmder工具自带OpenSSL指令) 1.生成RSA密钥的方法 genrsa -out private-rsa.key 2048 ...
- 天池平台再升级,打造产业AI知识共享、技术共享平台
在5月23日的云栖大会·武汉峰会上,天池发布“全球AI开发者计划”,打造一站式人工智能知识共享平台,计划2年内在平台上集聚30万AI工程师.同时,阿里云天池正式升级,成为从产业机会到实施交付一站式解决 ...