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()

代码要点:

  1. 设置了完整的请求头,特别是User-Agent,让请求看起来像浏览器
  2. 加了随机延迟,避免请求太频繁被识别
  3. 用CSS选择器定位搜索结果元素
  4. 异常处理确保程序稳定

注意百度页面结构可能变化,需要根据实际情况调整CSS选择器。另外频繁请求可能触发验证码,可以考虑用代理IP或降低请求频率。

一句话建议:合理设置请求间隔和请求头是关键。


研究过 phantomjs 和新出的 Chrome Headless,读过 selenium 的源码,怎么联系 lz ?

应该是类似 pyautokey 库

联系方式呢?

同楼上,联系方式呢

第一眼看成二次元的举手

这是要刷百度搜索的节奏啊。

变向给百度送钱。。

类似我们做的自动化测试~~~

回到顶部