网页抓取数据百度百科(*敏*感*词*前五页数据进行操作系统(图)使用工具)
优采云 发布时间: 2021-11-08 12:07网页抓取数据百度百科(*敏*感*词*前五页数据进行操作系统(图)使用工具)
结合第一个实例,这次我们将继续获取网页并存储它。
简要说明:从百度抓取前五页数据贴吧
操作系统:macOS Mojave 10.14.3
使用工具:PyCharm
流程:构建URL->访问URL->抓取网页代码->构建存储文件目录->存储抓取的文件
这个时候就需要注意了。按照第一步中的方法,以“c语言栏”为例:language&fr=search
打印得到的网页代码后,发现需要网站无法准确定位。这涉及到 url 编码的问题。
打开谷歌浏览器,首先我们输入c语言贴吧,在网页上右键选择“检查”,输入“网络”刷新网站,可以看到第一次加载的内容
实际请求地址为 %E8%AF%AD%E8%A8%80&fr=search&red_tag=u0923371448
而我们输入的网址是:language&fr=search&red_tag=u0923371448
因为之前玩过一个丢失的密码框,所以很快就发现了一个涉及搜索内容的转码问题
包括转码 URL:
所以,我们在搜索内容的时候,有两种选择,一:构造URL时填写转换后的URL编码,二:使用quote函数进行转换。
方法一:emmmm...URL直接改成%E8%AF%AD%E8%A8%80&fr=search&red_tag=u0923371448。
方法二:在输入数据的时候使用quote函数,后面的代码会用到这个方法。
代码如下(前五页网址也有规则,很容易找到,本帖内容暂时缺失):
<p>from urllib.request import urlopen
from urllib.parse import quote
def open_baidu(name,page):
#建立url
url='https://tieba.baidu.com/f?kw={}&ie=utf-8&pn={}'.format(quote(name),page)
print(url)
response=urlopen(url)
return response.read().decode()
def save_baidu(page,html,name):
#建立文件路径
file_name='tieba/{}_page_{}.html'.format(name,page)
with open(file_name,'w',encoding='UTF-8') as file:
file.write(html)
return html
if __name__ == '__main__':
x=input('请输入需要搜索的贴吧:')
i=0
while i