网页文章采集工具(安装requests模块installrequests获取网页源码导入模块,简直好用到哭)
优采云 发布时间: 2021-10-07 06:04网页文章采集工具(安装requests模块installrequests获取网页源码导入模块,简直好用到哭)
博客链接
前言
过完年无聊,想学Python。我想了很久。从实践的角度来看,我打算边做边学。想了半天,还是写个采集器吧。
目标是存储采集的内容。因为我是初学者,很多都不懂,所以一切都很简单,目的第一,性能第二。
文本
既然要采集,就得先获取网页的源码。其中,使用最多的是urllib和requests模块。其中,requests模块提供的api是最友好的,所以我打算用requests。但是请求是第三方模块。所以
安装请求模块
pip 安装请求
获取网页源代码
导入 requests 模块并调用 get 方法。如果你不知道http的get、post、put、delete等方法,度娘http协议就懂了。
简单的说,大部分网页信息都是通过get获取的,提交的信息基本都是post方式。我说的是绝大多数。
这是一段代码,演示了如何获取主页的源代码。用来哭是那么容易。
获取源代码
import requests
res = requests.get('http://www.baidu.com')
print res.text
结果如下:
ç™¾åº¦ä¸€ä¸‹ï¼Œä½ å°±çŸ¥é“ æ–°é—» hao123 地图 视频 è´´å§ ç™»å½• document.write('登录'); æ›´å¤šäº§å“ å…³äºŽç™¾åº¦ About Baidu ©2017 Baidu 使用百度å‰å¿…读 æ„è§å馈 京ICPè¯030173å·
获取源代码并解码
源代码是有的,但是中文变得乱码了。本页使用utf-8,所以必须指定编码名称。只有这样程序才能知道使用什么编码来解码和显示它。正确解码才能得到我们想要的内容。所以代码变成了下面这样。
import requests
res = requests.get('http://www.baidu.com')
res.encoding='utf-8'
print res.text
结果如下:
百度一下,你就知道 新闻 hao123 地图 视频 贴吧 登录 document.write('登录'); 更多产品 关于百度 About Baidu ©2017 Baidu *敏*感*词* 意见反馈 京ICP证030173号
现在终于可以看中文了。
封装成函数
为了提高复用性,我们打算把它封装成一个函数,比如get_web_source,这样以后可以获取不同的url和code,作为参数传入,才能正确获取源码。所以我是这样写的。
结果如下:
百度一下,你就知道 新闻 hao123 地图 视频 贴吧 登录 document.write('登录'); 更多产品 关于百度 About Baidu ©2017 Baidu *敏*感*词* 意见反馈 京ICP证030173号
结果是正确的,收工!
参考