04_Python爬蟲入門遇到的坑__向搜索引擎提交關鍵字02
4. 向百度提交關鍵字:
上一篇文章我們向360提交了關鍵字,這次的內容是向百度提交關鍵字
在獲取接口之後我們直接套用上一次的代碼先試試看:
import requests # 接口 url = "https://www.baidu.com/s?" # 需要提交的字典(我們要搜索的內容,此處假設為python) kv = {"wd": "python"} # 訪問偷 head = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36", } try: # 請求頁面 r = requests.get(url, headers=head, params=kv) # 判斷請求狀態 r.raise_for_status() # 輸出源碼 print(r.text) print("成功!!") except: print("頁面獲取失敗!")
這時候你會發現輸出的內容特別少,其中還有這樣一行:
<div class="timeout-title">网络不给力,请稍后重试</div>
這顯然不對,因為你爬取下來的頁面是這個:
或許你馬上就會想到加上cookie,沒問題的,這完全是可以的,但是我今天要講的是另外一種方法.
在header中添加accept:
import requests # 接口 url = "https://www.baidu.com/s?" # 搜索的關鍵字 kv = {"wd": "java"} # 頭部信息 head = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.100 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3", } try: # 請求頁面 r = requests.get(url, headers=head, params=kv) # 判斷請求狀態 r.raise_for_status() # 使用備用編碼 r.encoding = r.apparent_encoding # 輸出源碼 print(r.text) print("成功!!") except: print("頁面獲取失敗!")
這時候便能得到正確的結果:
總結:cookie很有用,但不代表每次都需要!
分类:
Python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用