Python抓取百度查询结果的方法

Python抓取百度查询结果的方法

在Python中使用第三方库BeautifulSoup和requests可以非常方便地实现对百度查询结果的抓取。

步骤一:获取查询结果的网页源代码

使用requests库发起GET请求获取查询结果的网页源代码。

import requests

def get_page_source(keyword):
    url = f"https://www.baidu.com/s?wd={keyword}"
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
    response = requests.get(url, headers=headers, timeout=10)
    response.encoding = "utf-8"
    return response.text

其中keyword是查询的关键词,url根据关键词拼装出百度查询结果的网址,headers则是为了模拟浏览器发送请求的消息头,timeout则是请求超时时间。

步骤二:解析网页源代码

使用BeautifulSoup库解析网页源代码,获取需要的信息。

from bs4 import BeautifulSoup

def parse_page_source(page_source):
    bs = BeautifulSoup(page_source, "html.parser")
    results = bs.find_all("div", class_="result c-container ")
    search_results = []
    for result in results:
        title = result.find("h3").text
        link = result.find("a").get('href')
        summary = result.find("div", class_="c-abstract").text
        search_results.append({'title': title, 'link': link, 'summary': summary})
    return search_results

首先使用BeautifulSoup将网页源代码解析为BeautifulSoup的对象bs,然后根据页面结构和相关类名进行元素查找,提取出标题、链接和摘要等信息,并将这些信息封装为一个包含这些信息的字典,最后将所有的字典放到一个列表中返回。

示例一:查询Python

keyword = "Python"
page_sourc = get_page_source(keyword)
results = parse_page_source(page_sourc)
for result in results:
    print(result['title'])
    print(result['link'])
    print(result['summary'])
    print()

示例二:查询人工智能

keyword = "人工智能"
page_sourc = get_page_source(keyword)
results = parse_page_source(page_sourc)
for result in results:
    print(result['title'])
    print(result['link'])
    print(result['summary'])
    print()

以上两个示例分别演示了Python对关键词“Python”和“人工智能”的百度查询结果的抓取和输出。其中,get_page_source()函数用于获取查询结果的网页源代码,parse_page_source()函数则用于解析网页源代码并提取有用的信息。最后,通过for循环遍历所有搜索结果的字典,打印出字典中的标题、链接和摘要等信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python抓取百度查询结果的方法 - Python技术站

(0)
上一篇 2023年5月14日
下一篇 2023年5月14日

相关文章

  • Django笔记二十四之数据库函数之比较和转换函数

    本文首发于公众号:Hunter后端原文链接:Django笔记二十四之数据库函数之比较和转换函数 这一篇笔记开始介绍几种数据库函数,以下是几种函数及其作用 Cast 转换类型 Coalesce 优先取值 Greatest 返回较大值 Nullif 值相同返回 None 1、model 准备 这一篇笔记我们主要用到 Author 和 Entry model 作为…

    python 2023年4月19日
    00
  • python利用正则表达式排除集合中字符的功能示例

    当使用Python处理文本时,正则表达式是一个非常有用的工具。可以利用正则表达式进行字符串匹配、查找、替换等操作。其中,排除集合中的字符也是一种常见的需求。下面我将为大家详细介绍使用Python利用正则表达式排除集合中字符的功能示例。 1. 概述 在正则表达式中,[ ] 表示字符集合,代表任意一个满足条件的字符。例如,[abc]可以匹配字符串中任意一个字符是…

    python 2023年5月14日
    00
  • python使用多线程+socket实现端口扫描

    一、多线程+socket实现端口扫描攻略1. 确定目标IP和端口范围2. 使用Python的socket模块创建一个服务端socket对象3. 遍历所有需要扫描的端口,使用Python的threading模块创建多个线程,并在每个线程中执行扫描端口操作4. 在扫描端口时,需要设置超时时间,避免线程阻塞5. 扫描结果输出到控制台或文件 二、示例1:扫描单个端口…

    python 2023年5月19日
    00
  • python并发编程多进程 模拟抢票实现过程

    Python并发编程多进程模拟抢票实现过程 什么是并发编程? 并发指处理多个事情的能力,而并发编程指同时执行多个任务的能力。在Python中,可以通过多线程、多进程和协程等方式实现并发编程。 什么是多进程? 多进程是指启动多个进程来同时执行不同的任务。与单进程相比,多进程能够实现更高的性能,因为多个进程可以在不同的CPU核心上同时运行。 模拟抢票实现过程示例…

    python 2023年5月19日
    00
  • 爬虫代码,正则表达,下载图片

    #coding=utf-8 import urllib import re def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): reg = r’src=”(.+?\.jpg)” pic_ext’ imgre = re.com…

    爬虫 2023年4月13日
    00
  • Python if else语句对缩进的要求

    Python中的if、else语句是控制程序流程的重要手段之一。它们的缩进要求是Python语言的重要特性之一,需要开发者格外注意。接下来,本文将详细讲解Python if else语句对缩进的要求。 Python if else 语句的语法格式 if …: …elif …: …else: … 在Python中,if语句需要带有一个条件表…

    python 2023年6月5日
    00
  • 人生苦短我用python python如何快速入门?

    这里是关于“人生苦短我用python——python如何快速入门”的攻略。 为什么选择Python Python是一门高级编程语言,能够与C, C++, Java等编程语言一起称为“三大主流编程语言”。与其他编程语言相比,Python拥有如下优点: 语法简洁,易于上手 开发效率高,大幅提升开发效率 库丰富,有大量的第三方库可以使用 跨平台,在不同的操作系统上…

    python 2023年5月14日
    00
  • python实现两字符串映射

    首先,我们需要理解什么是“字符串映射”。在字符串映射中,两个字符串中的每个字符都有对应的另一个字符,因此可以将其中一个字符串中的字符替换为另一个字符串中的对应字符。 例如,如果我们有两个字符串 “abc” 和 “def”,并且定义了它们之间的映射如下: a -> d b -> e c -> f 那么,我们可以将字符串 “abc” 转换为字符…

    python 2023年6月5日
    00
合作推广
合作推广
分享本页
返回顶部