Python3.4 软件二次开发,如何实现模拟人工百度搜索?
找人接单 Python 软件二次开发,软件运行环境:windowsxp、7/8/10,熟悉模拟人工上网搜索的,要求熟悉 Python3.4、phantomjs、selenium,长期合作找一个平时有空余时间的,新手勿扰,
详细需求需要先谈,因为需要做的比较多,主要就是模拟人工搜索,懂的就可以接。价格面议。 喜欢研究加我
Python3.4 软件二次开发,如何实现模拟人工百度搜索?
9 回复
要模拟人工百度搜索,关键是用requests库处理网络请求,用BeautifulSoup解析返回的HTML。这里有个直接能跑的示例:
import requests
from bs4 import BeautifulSoup
import time
import random
def baidu_search(query):
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Accept-Encoding': 'gzip, deflate, br',
'DNT': '1',
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
}
# 模拟人工延迟
time.sleep(random.uniform(1, 3))
params = {'wd': query}
url = 'https://www.baidu.com/s'
try:
response = requests.get(url, params=params, headers=headers, timeout=10)
response.raise_for_status()
response.encoding = 'utf-8'
soup = BeautifulSoup(response.text, 'html.parser')
results = []
# 提取搜索结果
for item in soup.select('.result'):
title_elem = item.select_one('h3 a')
if title_elem:
title = title_elem.get_text(strip=True)
link = title_elem.get('href')
abstract = item.select_one('.c-abstract')
abstract_text = abstract.get_text(strip=True) if abstract else ''
results.append({
'title': title,
'link': link,
'abstract': abstract_text
})
return results
except requests.RequestException as e:
print(f"请求出错: {e}")
return []
# 使用示例
if __name__ == "__main__":
search_results = baidu_search('Python编程')
for i, result in enumerate(search_results, 1):
print(f"{i}. 标题: {result['title']}")
print(f" 链接: {result['link']}")
print(f" 摘要: {result['abstract'][:100]}...")
print()
代码要点:
- 设置了完整的请求头,特别是
User-Agent,让请求看起来像浏览器 - 加了随机延迟,避免请求太频繁被识别
- 用CSS选择器定位搜索结果元素
- 异常处理确保程序稳定
注意百度页面结构可能变化,需要根据实际情况调整CSS选择器。另外频繁请求可能触发验证码,可以考虑用代理IP或降低请求频率。
一句话建议:合理设置请求间隔和请求头是关键。
研究过 phantomjs 和新出的 Chrome Headless,读过 selenium 的源码,怎么联系 lz ?
应该是类似 pyautokey 库
联系方式呢?
同楼上,联系方式呢
第一眼看成二次元的举手
这是要刷百度搜索的节奏啊。
变向给百度送钱。。
类似我们做的自动化测试~~~

