mummummuuu 2024-02-02 16:26 采纳率: 22.2%
浏览 13

requests访问bing返回没有结果

使用requests爬bing搜索结果中的标题和链接

def bing_search(name,site):
    resl=[]
    url=f'https://cn.bing.com/search?q={name} site:{site}'
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0'}
    res=get(url=url,headers=headers).text
    title_pattern = compile('<a.target=..blank..target..(.*?)</a>')
    link_pattern = compile('(?<=(a.target=._blank..target=._blank..href=.))(.*?)(?=(..h=))')
    title=title_pattern.findall(res)
    link=link_pattern.findall(res)
    j=0
    for i in title:
        tbs=BeautifulSoup(i,'lxml')
        resl.append([tbs.text.split('>')[1],link[j][1]])
        j+=1
    #for i in res:
    #   print(i,end='')
    return resl

例如在b站搜华强买瓜,最后没有结果,返回空列表
看打印的html内容里有

img

但是如果自己手动搜能看到结果

img

如何解决

  • 写回答

2条回答 默认 最新

  • 专家-郭老师 Java领域新星创作者 2024-02-02 16:48
    关注

    参考通义千问和郭老师的小迷弟雅思莫了-编写提供,主要是为了帮助您快速解决问题,如下回答,您可以参考下,如有问题,评论区留言。

    在您的代码中,问题可能出在正则表达式匹配规则不准确,无法正确提取bing搜索结果中的标题和链接。请尝试使用更精确的CSS选择器或者BeautifulSoup解析网页结构来获取信息。

    以下是一个改进后的示例:

    import requests
    from bs4 import BeautifulSoup
    
    def bing_search(name, site):
        url = f'https://cn.bing.com/search?q={name}+site:{site}'
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0'
        }
        
        res = requests.get(url=url, headers=headers)
        soup = BeautifulSoup(res.text, 'lxml')
    
        result_list = []
        for result in soup.select('.b_algo a'):
            title = result.text.strip()
            link = result['href']
            result_list.append([title, link])
    
        return result_list
    
    # 示例:
    name = '华强买瓜'
    site = 'bilibili.com'
    print(bing_search(name, site))
    

    这段代码使用了BeautifulSoup的CSS选择器来定位搜索结果区域(假设是.b_algo a,根据Bing搜索结果页面的实际HTML结构可能需要调整)内的标题和链接。这样能更稳定地从搜索结果页面提取所需信息。

    评论

报告相同问题?

问题事件

  • 创建了问题 2月2日

悬赏问题

  • ¥15 webstorm上开发的vue3+vite5+typeScript打包时报错
  • ¥15 vue使用gojs,需求在link中的虚线上添加方向箭头
  • ¥15 CSS通配符清除内外边距为什么可以覆盖默认样式?
  • ¥15 SPSS分类模型实训题步骤
  • ¥15 求解决扩散模型代码问题
  • ¥15 工创大赛太阳能电动车项目零基础要学什么
  • ¥20 limma多组间分析最终p值只有一个
  • ¥15 nopCommerce开发问题
  • ¥15 torch.multiprocessing.spawn.ProcessExitedException: process 1 terminated with signal SIGKILL
  • ¥15 QuartusⅡ15.0编译项目后,output_files中的.jdi、.sld、.sof不更新怎么解决