用Python爬取百度搜索结果并保存

项目目标

爬取百度上关键字为“粮食”的搜索结果,并保存,提交给客户,用于进一步分析我国粮食政策。

项目准备

软件:PyCharm

需要的库:json, requests,etree

项目分析

1)如何进行关键词搜索?

利用response库,直接Get网址获得搜索结果。网址如下:

https://www.baidu.com/s?wd=粮食

2)如何获取标题和链接?

利用etree对原代码进行规范梳理后,通过Xpath定位到文章标题和href,获取标题和文章链接。

3)如何保存搜索结果?

新建txt文件,对搜索结果循环写入,保存即可。

项目实现

1、第一步导入需要的库

import jsonimport requestsfrom lxml import etree
2、第二步用requests进行请求搜索

headers = {    "User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36"}response = requests.get('https://www.baidu.com/s?wd=粮食&lm=1', headers=headers)
3、第三步对获取的源代码进行整理分析,通过Xpath定位需要的资源

​​​​​​​

   r = response.text   html = etree.HTML(r, etree.HTMLParser())   r1 = html.xpath('//h3')   r2 = html.xpath('//*[@class="c-abstract"]')   r3 = html.xpath('//*[@class="t"]/a/@href')
4、第四步把有用资源循环读取保存
for i in range(10):    r11 = r1[i].xpath('string(.)')    r22 = r2[i].xpath('string(.)')    r33 = r3[i]    with open('ok.txt', 'a', encoding='utf-8') as c:         c.write(json.dumps(r11,ensure_ascii=False) + '\n')         c.write(json.dumps(r22, ensure_ascii=False) + '\n')         c.write(json.dumps(r33, ensure_ascii=False) + '\n')    print(r11, end='\n')    print('------------------------')    print(r22, end='\n')    print(r33)

    

效果展示

1、程序运行结果,如下图所示:

图片

2、保存为txt的文件最终结果如下图所示:

图片

总结

本文介绍了如何利用Python对百度搜索结果进行爬取、保存,是一个小爬虫,这也是Python好玩的地方,有大量免费的库可用,能帮你实现各种需求。工作量大,学会用Python!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/16665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能应用层岗位—AI项目经理/AI产品经理

AI是一门技术,最终落实成产品才能具备商业价值 应用层,就是面向特定应用场景,形成人工智能软硬件产品或解决方案。主要包括行业AI解决方案和热门产品,如自动驾驶、机器人、智能家居、可穿戴的智能设备等 相应的,就会…

【算法】排序

排序算法在信息学非常常用。Hello&#xff01;大家好&#xff0c;我是学霸小羊&#xff0c;今天讲几个排序算法。 1.“打擂台”排序 思路&#xff1a;a[ i ]和a[ j ]打擂台&#xff08;i<j&#xff09;。 这个方法简单易懂&#xff0c;只需要看看需不需要交换。按从大到小…

element ui 的el-input输入一个字后失去焦点,需重新点击输入框才能再次输入!

解决方案&#xff1a; 我是form表单嵌套表格&#xff0c;里面的el-input输入框&#xff0c;输入第一个值的时候会突然失去焦点&#xff0c;需要再次点击输入框才能正常输入&#xff0c;原因是table的key值&#xff0c;需要改成正常的index即可&#xff0c;如果你是循环的&…

阿里云物联网平台python ADK 发布/订阅

基础知识学习参考&#xff1a; 1、使用消息通讯Topic 2、python link SDK 一、环境变量配置 1、python3.6&#xff1a;下载安装 2、安装paho-mqtt 1.4.0版本 pip install paho-mqtt1.4.03、安装安装Link SDK最新版本 pip install aliyun-iot-linkkit 4、下载python ADK…

elementui table 回显的时候勾选状态消失 分页切换的时候table的选中状态会被重置

<el-table v-loading"loading2" ref"multipleTable" :data"reportList" sort-change"handleReportSortChange" selection-change"handleReportSelectionChange">回显代码getReportList(){ //table列表的值this.loadin…

python-编写函数判断一个三位数是否为水仙花数。

【问题描述】要求编写函数isflower(n)判断一个三位数n是否为水仙花数,如果是&#xff0c;则返回True&#xff0c;否则返回False。在主程序中要求调用该函数并输出三位数中所有的水仙花数。所谓"水仙花数"是指一个3位数&#xff0c;其各位数字立方和等于该数本身。例如…

VirtualBox安装ubuntu22.04记录

一,VirtualBox 软件安装 虚拟机&#xff08;Virtual Machine&#xff09;指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。 常见的虚拟机软件主要有两款 VMware 和 VirtualBox 。VMwar…

【最新区块链论文录用资讯】CCF A—FSE 2024 共4篇 附pdf

Conference&#xff1a;ACM International Conference on the Foundations of Software Engineering (FSE) CCF level&#xff1a;CCF A Categories&#xff1a;软件工程/系统软件/程序设计语言 Year&#xff1a;2024 Num&#xff1a;4 1 Title: Demystifying Invariant …

项目启动 | 晟泰克再度牵手盘古信息,引入IMS V6系统实现数字化深度推进

当前&#xff0c;中国汽车零部件行业的数字化转型正在快速推进&#xff0c;数字化工业软件已经广泛应用于汽车零部件的研发、生产和服务等各个环节&#xff0c;赋能行业实现降本减存&#xff0c;提质增效&#xff0c;有力推动了行业高质量发展。 成立于2003年的合肥晟泰克汽车…

深度学习之加宽全连接

1.Functional API 搭建神经网络模型 1.1.利用Functional API编写宽深神经网络模型进行手写数字识别 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.datasets import load_iris from sklearn.model_selection import train_test_spli…

决策树与机器学习实战【代码为主】

文章目录 &#x1f6f4;&#x1f6f4;引言&#x1f6f4;&#x1f6f4;决策树使用案例&#x1f6f4;&#x1f6f4;numpy库生成模拟数据案例&#x1f6f4;&#x1f6f4;决策树回归问题&#x1f6f4;&#x1f6f4;决策树多分类问题 &#x1f6f4;&#x1f6f4;引言 决策树是一种经…

1-Django开端--学生管理系统

目录 项目结构 前端页面: add_data.html class_data.html index.html apps.py models.py views.py settings,py urls.py ...实现简略的身架... 项目结构 前端页面: add_data.html --添加数据. {% extends index/index.html %}{% block content %} <div class&qu…

强化学习,第 2 部分:政策评估和改进

目录 一、介绍 二、关于此文章 三、求解贝尔曼方程 四、策略评估 4.1 更新变体 4.2 例描述 五、策略改进 5.1 V函数描述 5.2 政策改进定理 六、策略迭代 七、值迭代 7.1 算法描述 7.2 异步值迭代 八、广义策略迭代 九、结论 一、介绍 R强化学习是机器学习中的一…

C#子窗体嵌入主窗体

上位机开发中&#xff0c;经常会需要将子窗体嵌入到主窗体。 运行结果 核心实现&#xff1a; private void button2_Click(object sender, EventArgs e){Form3 childForm new Form3();//判断容器中是否已经打开子窗体&#xff0c;如果打开现将其关闭foreach (Control item in…

RocketMq源码解析三:路由管理

Nameserver的主要作用是为消息的生产者和消息消费者提供关于主题Topic的路由信息&#xff0c;那么Nameserver需要存储路由的基础信息&#xff0c;还要管理Broker节点&#xff0c;包括路由注册、路由删除等。 一、路由元数据 路由元数据主要保存了topic信息&#xff0c;broker信…

5.22 R语言-正态性检验

正态性检验 正态性检验的目的是确定一组数据是否符合正态分布&#xff08;也称高斯分布&#xff09;。在统计分析和数据建模中&#xff0c;正态性假设是许多统计方法和模型的基础。了解数据是否符合正态分布有助于选择适当的统计方法和确保分析结果的有效性。 本文主要从概率…

执法行动高压下,勒索软件攻击仍持续增加

执法行动 最近几年&#xff0c;随着网络犯罪特别是勒索软件犯罪的日益猖獗&#xff0c;勒索软件攻击已经对网络空间安全构成重大威胁。互联网不是法外之地&#xff0c;执法机构也对应加强了执法力度&#xff0c;对全球威胁重大的网络犯罪团伙进行重点打击。对勒索软件团伙所控…

golang、laravel对接stripe海外支付接口的总结和流程(通俗易懂)

目录 stripe是什么&#xff1f; 环境 配置后台 首先让管理员把你设置成为开发者 然后进入后台 然后你要创建产品&#xff0c;开单周期要写每天&#xff0c;我这里理解成每天都会有人买的 获取产品id 获取密钥&#xff0c;后续代码需要用到 支付代码 唤起支付页面 测…

甘肃省大学生志愿服务西部计划报名流程及免冠证件照处理

在甘肃省&#xff0c;大学生志愿服务西部计划是一项旨在鼓励和引导大学生参与西部地区社会服务与发展的重要项目。随着2024年报名季的到来&#xff0c;许多有志青年正准备投身这一有意义的事业。本文将详细介绍报名流程&#xff0c;并提供免冠证件照的处理技巧&#xff0c;帮助…

设计模式11——代理模式

写文章的初心主要是用来帮助自己快速的回忆这个模式该怎么用&#xff0c;主要是下面的UML图可以起到大作用&#xff0c;在你学习过一遍以后可能会遗忘&#xff0c;忘记了不要紧&#xff0c;只要看一眼UML图就能想起来了。同时也请大家多多指教。 代理模式&#xff08;Proxy&am…