毕设新学小知识
最近学习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,然后再打开看看是什么样子。
看看网页链接,确认是保存到本地修改后缀打开的网页,而不是又把图片复制了一遍。
后话
这只是初学者写出来的代码,存在很多缺点:效率不高,代码逻辑性不强,没有写入到函数中,代码
不美观。希望看到这篇文章的评议们,可以分享你的建议,谢谢各位。
如果有兴趣的话可以关注我的个人公众号:小惑有观察。
我会把自己的对人生的思考,对情感的理解,活下去必备的方方面面产生疑问并给出自己的见解。非
常欢迎各位朋友们和我交流。
网友评论