基于Python3爬取百度百科内容(可自己输入关键字) |
您所在的位置:网站首页 › CoinDesk百度百科 › 基于Python3爬取百度百科内容(可自己输入关键字) |
毕设新学小知识
最近学习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 = { # 'wd':key_word, # 'Host': 'https://baike.baidu.com/item/', "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,然后再打开看看是什么样子。 看看网页链接,确认是保存到本地修改后缀打开的网页,而不是又把图片复制了一遍。 后话这只是初学者写出来的代码,存在很多缺点:效率不高,代码逻辑性不强,没有写入到函数中,代码 不美观。希望看到这篇文章的评议们,可以分享你的建议,谢谢各位。 如果有兴趣的话可以关注我的个人公众号:小惑有观察。 我会把自己的对人生的思考,对情感的理解,活下去必备的方方面面产生疑问并给出自己的见解。非 常欢迎各位朋友们和我交流。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |