使用Python爬取Google搜索#taw标签返回空列表的问题求助
解决Google搜索结果#taw标签爬取为空的问题
你爬取不到#taw标签的核心原因是Google的反爬机制:直接用requests.get发起请求时,没有携带浏览器标识等必要请求头,会被判定为非人工访问,返回的HTML里根本没有目标广告区域的内容,自然会得到空列表或None。
解决步骤:
- 给请求添加
headers参数,模拟真实浏览器的请求头,至少包含User-Agent字段 - 建议使用
requests.Session()保持会话,提升请求的真实性
修改后的代码:
import requests from bs4 import BeautifulSoup url = 'https://www.google.com/search?client=safari&rls=en&q=프로그래밍+공부&ie=UTF-8&oe=UTF-8' # 模拟Safari浏览器的请求头,可替换为自身浏览器的真实UA headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15' } # 用Session保持会话,增强请求真实性 session = requests.Session() response = session.get(url, headers=headers) html = response.text soup = BeautifulSoup(html, 'html.parser') find = soup.select('#taw') print(find)
额外提示:
- 可通过浏览器开发者工具(F12)复制自身的真实请求头替换上述
User-Agent,降低被识别概率 - Google页面结构可能随时调整,若后续#taw标签失效,需重新查看页面HTML结构定位广告区域
内容的提问来源于stack exchange,提问作者yeolsim_coding
相关产品推荐
相关产品推荐

