网页抓取数据百度百科(*敏*感*词*前五页数据进行操作系统(图)使用工具)

优采云 发布时间: 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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线