看到了中文版的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的更多相关文章

  1. Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储

    Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...

  2. python 爬虫抓取心得

    quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quo ...

  3. Python爬虫----抓取豆瓣电影Top250

    有了上次利用python爬虫抓取糗事百科的经验,这次自己动手写了个爬虫抓取豆瓣电影Top250的简要信息. 1.观察url 首先观察一下网址的结构 http://movie.douban.com/to ...

  4. python爬虫抓取哈尔滨天气信息(静态爬虫)

    python 爬虫 爬取哈尔滨天气信息 - http://www.weather.com.cn/weather/101050101.shtml 环境: windows7 python3.4(pip i ...

  5. Python 爬虫: 抓取花瓣网图片

    接触Python也好长时间了,一直没什么机会使用,没有机会那就自己创造机会!呐,就先从爬虫开始吧,抓点美女图片下来. 废话不多说了,讲讲我是怎么做的. 1. 分析网站 想要下载图片,只要知道图片的地址 ...

  6. Python爬虫抓取某音乐网站MP3(下载歌曲、存入Sqlite)

    最近右胳膊受伤,打了石膏在家休息.为了实现之前的想法,就用左手打字.写代码,查资料完成了这个资源小爬虫.网页爬虫, 最主要的是协议分析(必须要弄清楚自己的目的),另外就是要考虑对爬取的数据归类,存储. ...

  7. python 爬虫抓取 MOOC 中国课程的讨论区内容

    一:selenium 库 selenium 每次模拟浏览器打开页面,xpath 匹配需要抓取的内容.可以,但是特别慢,相当慢.作为一个对技术有追求的爬虫菜鸡,狂补了一些爬虫知识.甚至看了 scrapy ...

  8. Python爬虫 -- 抓取电影天堂8分以上电影

    看了几天的python语法,还是应该写个东西练练手.刚好假期里面看电影,找不到很好的影片,于是有个想法,何不搞个爬虫把电影天堂里面8分以上的电影爬出来.做完花了两三个小时,撸了这么一个程序.反正蛮简单 ...

  9. python爬虫 抓取一个网站的所有网址链接

    sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...

随机推荐

  1. sqlite查询语句

    搜索距现在六个月前的月份第一天日期: SELECT date('now','start of month','-6 month','0 day'); 搜索距现在六个月前的日期: SELECT date ...

  2. JavaFX程序初次运行创建数据库并执行建表SQL

    在我的第一个JavaFX程序完成安装的时候才突然发现,不能要用这个软件还要手动执行Sql来建表吧? 于是我的想法是在Main程序中执行时检测数据库连接状况,如果没有检测到数据库或者连接异常,那么出现错 ...

  3. 用css画一个倒三角

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. elasticsearch 深入 —— 近似匹配

    近似匹配 使用 TF/IDF 的标准全文检索将文档或者文档中的字段作一大袋的词语处理. match 查询可以告知我们这大袋子中是否包含查询的词条,但却无法告知词语之间的关系. 思考下面这几个句子的不同 ...

  5. (ACM模板)不定长数组vector

    #include<iostream> #include<cstdio> #include<vector> #include<algorithm> usi ...

  6. Java两个引用指向同一个数组

  7. 编程题: 写一个 Singleton

    Singleton 模式主要作用是保证在 Java 应用程序中,一个类 Class 只有一个实例存在.举例:定义 一个类,它的构造函数为 private 的,它有一个 static 的 private ...

  8. windows平台搭建Mongo数据库复制集(类似集群)(三)

    在本篇里面,咱们重点总结一下复制集,以及分析一下它的工作原理 一.常见场景 应用程序和数据库之间的网络连接丢失 计划停机.断电.数据库服务硬盘故障等等 复制可以进行故障转移,复制能让你在副本间均衡读负 ...

  9. MFC的Dlg和App什么区别?应用程序类与对话框类

    MFC里有个app类..他是一个项目工程类,有一个全局的实例化.theApp你可以理解为整个项目的实例,它重载了入口函数,所有的窗口神马的,都是在这个类里实例化的. dlg是对话框,是一个窗口.一个程 ...

  10. python py文件转换成exe

    1.首先学会了最简单的方法 1)pip install pyinstaller  安装pyinstall 2)pyinstaller  aaaa.py 转换,会在当前目录下建两个文件夹,其中一个文件夹 ...