美文网首页
小惑关于爬取百度百科页面的个人见解

小惑关于爬取百度百科页面的个人见解

作者: 不爬爬 | 来源:发表于2020-03-19 22:27 被阅读0次

    毕设新学小知识

    最近学习Python爬虫,因为mooc里的北京理工大学嵩天老师就是爬取百度,所以就以百度为例啦~~

    一、 前期准备

    cmd中安装requests、urllib头文件。

    直接使用命令

    pip install requests

    pip install urllib

    结果提示successful installed前期工作结束

    如果提示安装错误,请自行百度。

    二、开始写代码

    import requests

    import urllib

    url1 = 'https://baike.baidu.com/item/'

    key_word = (input())

    lens = len(key_word)

    key_word = urllib.parse.quote(key_word,encoding = 'utf-8', errors = 'replace')

    headers = {

        "User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"

    }

    html = requests.get(url1+key_word,headers = headers)

    print(url1+key_word)# 验证链接是否正确

    html.encoding = html.apparent_encoding

    fo = open("F://毕设//1.txt",'wb')# 爬取百度百科的内容保存到本地中

    fo.write((html.content))

    print("写入文件成功")


    注意

    key_word = urllib.parse.quote(key_word,encoding = 'utf-8', errors = 'replace')

    这行代码的作用及说明参考我的其他文章链接


    有一定爬虫基础的朋友应该很容易理解这几行代码。

    简单说一下:

    1、因为现在爬虫非常多,各个网站也都增加了相应的反爬虫机制,我们就必须在爬取时模拟真人的操

    作。在requests.get中加入了请求头(headers),就可以很好的绕过服务器的检查。

    2、加上

    html.encoding = html.apparent_encoding

    这句话了是为了把页面转化为我们所能理解的方

    式。

    3、最后含有fo的两行代码就更好理解了,把我们爬取的百科的内容保存在txt文件中,这里我是用了

    wb覆盖写入方式。如果不存在1.txt文件,会自己创建一个,避免了不存在这个文件会报错的尴尬局

    面。

    最后提示写入文件成功,再来验证一下就ok!

    我们正常使用百度百科查找张子枫,是这个亚子的。

    我们运行一下自己的程序试试看。

    运行正常,提示我们爬取网页成功,接下来看看保存到本地txt里的内容。

    任意截两张文件内容,凑个字数,你们不会在心里骂我sb吧?(狗头保命)

    把txt后缀改为html,然后再打开看看是什么样子。

    看看网页链接,确认是保存到本地修改后缀打开的网页,而不是又把图片复制了一遍。

    后话

    这只是初学者写出来的代码,存在很多缺点:效率不高,代码逻辑性不强,没有写入到函数中,代码

    不美观。希望看到这篇文章的评议们,可以分享你的建议,谢谢各位。

    如果有兴趣的话可以关注我的个人公众号:小惑有观察。

    我会把自己的对人生的思考,对情感的理解,活下去必备的方方面面产生疑问并给出自己的见解。非

    常欢迎各位朋友们和我交流。

    相关文章

      网友评论

          本文标题:小惑关于爬取百度百科页面的个人见解

          本文链接:https://www.haomeiwen.com/subject/srvryhtx.html