- 根据关键词,爬取百度搜索后的网页源代码。
import requests
# User-Agent(请求载体的身份标识)
# UA检测:门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,说明该请求是一个正常的请求。但是,如果检测到请求的载体身份标识不是某一款浏览器的,则表示该请求为不正常请求(即爬虫),则服务器很有可能拒绝该次请求。
# UA伪装:让爬虫对应的请求载体身份标识伪装成某一款浏览器。
if __name__ == '__main__':
# 我自己写的:
"""
url_ = "https://www.sogou.com/web?query={}"
# 处理url携带的参数:
query = input("请输入您要采集的网页关键词:")
url = url_.format(query)
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0"
}
resp = requests.get(url=url, headers=headers)
html = resp.content.decode("utf-8")
with open("2/" + "2. 网页采集结果-myself.html", "w", encoding="utf-8") as f:
f.write(html)
resp.close()
print("采集完毕!")
"""
# 教程上面的:
# url = "https://www.sogou.com/web?"
url = "https://www.sogou.com/web"
# 1. 处理url携带的参数:封装到字典中
kw = input("enter a word: ")
param = {
'query': kw
}
# UA伪装:
header = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0"
}
# 2. 对指定url发起请求,对应的url是携带参数的,并且请求过程中处理了参数。
response = requests.get(url, params=param, headers=header)
# page_text = response.text
page_text = response.content.decode("utf-8")
filename = kw + ".html"
with open("2/" + filename, "w", encoding="utf-8") as f:
f.write(page_text)
response.close()
print(filename, "保存成功!")
运行结果:
- 请求头中需要带上UA用户代理。