python3 取 baidu 关键字十条结果为何与实际通过浏览器搜索的结果不同?

#coding:utf-8
from collections import Counter
import requests
from bs4 import BeautifulSoup
from urllib import request
import urllib
url = 'https://www.baidu.com.cn/s?wd=' + urllib.parse.quote('python3') + '&pn='  # word为关键词,pn是百度用来分页的..

headers = {    
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',    
'Connection': 'keep-alive',       
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8'}

r=requests.get(url,headers=headers)
soup = BeautifulSoup(r.text.replace('<b>', '').replace('</b>', ''),'lxml')

url_list=soup.select('div.result > h3 > a')
for i in url_list:
    print(i.getText())

以下是在浏览器搜索python3,前四个结果,当我用python3以上程序取前十结果时,结果内容是不一致的,试过n多关键词都是,哪位朋友能给讲讲原因,是我程序的问题还是百度做了什么,谢谢!
以下是在浏览器搜索python3,前四个结果,当我用python3以上程序取前十结果时,结果内容是不一致的,试过n多关键词都是,哪位朋友能给讲讲原因,是我程序的问题还是百度做了什么,谢谢!

阅读 3.6k
2 个回答

你把你本地的浏览器里的cookie带上试试

我试了一上,百度搜索结果的页面url中有N多个参数,远远不只wd和pn 。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题