整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Python数据分析实战-爬取某个关键词搜索的最新5

Python数据分析实战-爬取某个关键词搜索的最新500条新闻标题链接

现功能

通过百度引擎,爬取以“开源之夏”为搜索关键词最新的500条新闻的标题和链接

实现代码

  1. 安装所需的库:你需要安装requests和beautifulsoup4库。可以使用以下命令通过pip安装:
pip install requests beautifulsoup4
  1. 发起搜索请求并获取多个搜索结果页面的HTML内容:由于一次搜索结果页面只包含一部分新闻,我们需要多次请求不同页码的搜索结果页面。可以使用以下代码实现:
import requests

def search_baidu(keyword, page):
    url=f"https://www.baidu.com/s?wd={keyword}&pn={page}&rn=10"
    headers={
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36"
    }
    response=requests.get(url, headers=headers)
    if response.status_code==200:
        return response.text
    else:
        return None

这个函数将返回搜索结果页面的HTML内容。

  1. 解析搜索结果并提取新闻标题和链接:使用beautifulsoup4库解析HTML内容,提取出搜索结果中的新闻标题和链接。可以使用以下代码实现:
from bs4 import BeautifulSoup

def parse_search_results(html):
    soup=BeautifulSoup(html, "html.parser")
    news_results=soup.find_all("h3", class_="t")
    news_list=[]
    for result in news_results:
        title=result.a.text
        link=result.a["href"]
        news_list.append({"title": title, "link": link})
    return news_list

这个函数将返回一个包含新闻标题和链接的列表。

  1. 完整的爬取过程:将上述步骤整合到一个函数中,实现完整的爬取过程。可以使用以下代码实现:
def crawl_latest_news(keyword, num_news):
    news_list=[]
    num_pages=num_news // 10 + 1  # 每页10条新闻,计算需要请求的页面数
    for page in range(num_pages):
        html=search_baidu(keyword, page * 10)
        if html:
            page_news=parse_search_results(html)
            news_list.extend(page_news)
        else:
            print(f"无法获取第 {page+1} 页的搜索结果")
    return news_list[:num_news]

现在,你可以调用crawl_latest_news函数,并传入你想要搜索的关键词和要获取的新闻数量(这里是500),获取最新的500条新闻列表。例如:

keyword="开源之夏"
num_news=500
news_list=crawl_latest_news(keyword, num_news)
if news_list:
    for news in news_list:
        print(news["title"])
        print(news["link"])
        print()
else:
    print("无法获取搜索结果")

实现效果

写在后面

本人读研期间发表5篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,对Python有一定认知和理解,会结合自身科研实践经历不定期分享关于python、机器学习、深度学习等基础知识与应用案例。

致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。

1、邀请三个朋友关注本订阅号或2、分享/在看任意订阅号的三篇文章即可在后台联系我获取相关数据集和源码。

2、关注“数据杂坛”公众号,点击“领资料”即可免费领取资料书籍。

3、如果对本文有疑问,或者有论文指导的相关需求,点击“联系我”添加作者微信直接交流。

yperText Markup Language 简称为HTML

HyperText: 超文本 (文本 + 图片 + 视频 + 音频 + 链接)

Markup Language: 标记语言

由SGML(标准通用标记语言)发展而来,写给浏览器的语言

超文本标记语言(第一版)1993年6月(IETF制定)

HTML 2.0——1995年11 月;HTML 3.0——1996年1 月;HTML 4.0——1997年

W3C: World Wide Web Consortium (W3C理事会或万维网联盟)

1.HTML元素由开始标签和结束标签组成。

2.位于开始标签和结束标签中的文本是元素的内容。

3.HTML 标签有开始必须有结束。如果是没有内容的标签(空标签),用 />来结束。

4.标签名不区分大小写,但是在XHTML中标签名必须用小写。

5.标签具有属性, 属性用来表示标签的性质和特征。属性要在开始标签中指定。

HTML 基本元素

换行符 <br />

段落 <p></p>

标题 <h1></h1>

水平线<hr />

文本格式化<b>

预格式文本<pre>

字体<font>

链接<a>

图像<img>

特殊字符&nbsp;

注释<!-- -->

一、换行符

<br />

二、段落

<p>这是一个段落</p>

属性说明

align行对齐方式(left, right, center)

三、标题

<h1>标题1</h1>

<h2>标题2</h2>

<h3>标题3</h3>

<h4>标题4</h4>

<h5>标题5</h5>

<h6>标题6</h6>

四、水平线

<hr />

<hr size="5" width="50%" align="center" />

属性说明

size指定线的粗细(px)

width指定线的长度(px或%)

align行对齐方式(left, right, center)

五、文本格式化

<b>定义粗体文本</b>

<i> 定义斜体文本 </i>

<s>定义删除文本</s> <del></del>

<u>定义下划线文本</u>

<sup>定义上标字</sup>

<sub>定义下标字</sub>

六、<pre> 预格式文本

<pre>标签可以保留文字在源代码中的格式,使得页面中显示的内容和源代码中的格式一致。如:

<pre>

<script>alert("这会显示一个弹出窗口");</script>

</pre>

七、字体

<font>这是一段文字</font>

属性说明

size定义字体大小

face定义字体

color定义字体颜色

(1)16进制的模式 #DCC123

(2)单词模式 red ,blue ,green ,black

(3)RGB rgb(20,100,35) 0-255

八、链接

<a href="URL"> ~ </a>

属性说明

href定义链接地址

title链接提示信息

target链接打开方式(_blank 新的空白页,_self 当前页,_top)

九、邮件链接

<a href="mailto:邮箱地址"> ~ </a>

十、锚点

锚点标签用于使用户"跳"到文档的某个部分。

<a href="#位置名"> ~ </a>

<a name="位置名"> ~ </a>

怎样指定链接的地址

1.外部链接

<a href="http://www.haook.cn"> HTML模板网</a>

2.内部链接

<a href="about.html"> 公司简介 </a>

.语法

在HTML中创建超链接非常简单,只需用标签环绕需要被链接的对象即可,其基本语法格式如下:

<a href="跳转目标" target="目标窗口的弹出方式">文本或图像</a>

href属性:链接的地址,链接的地址可以是一个网页,也可以是一个视频、图片、音乐等等。

target属性:

  1. _blank:在一个新的窗口中打开链接
  2. _self(默认值):在当前窗口中打开链接
  3. _parent:在父窗口中打开页面(框架中使用较多)
  4. _top:在顶层窗口中打开文件(框架中使用较多)

2.外部链接

可以打开别人的网页:

<a href="https://www.baidu.com">在当前窗口打开百度</a><a href="https://www.baidu.com" target="_self">在当前窗口打开百度</a><a href="https://www.baidu.com" target="_blank">在新的窗口打开百度</a>

3.内部链接

直接链接内部页面名称即可:

<a href="1.外部链接.html">打开内部链接</a>

4.空链接

如果当时没有确定链接目标时,通常将链接标签的href属性值定义为“#”(即href="#"),表示该链接暂时为一个空链接:

<a href="#">空链接</a>

5.锚点链接

通过创建锚点链接,用户能够快速定位到目标内容。创建锚点链接分为两步:

<h1 id="top">顶部</h1>...<a href="#top">回到顶部</a>

跳转到其他页面:

<a href="5.锚点链接2.html#top">回到另一个页面顶部</a>

5.锚点链接2.html

<h1 id="top">顶部</h1>

6.base 标签

base 可以设置整体链接的打开状态

base 写到 head 之间

<head>  <meta charset="utf-8">  <title>文档标题</title>  <base target="_blank"></head><body>  <a href="http://www.baidu.com">在新窗口打开百度</a>  <a href="http://www.baidu.com" target="_self">在当前窗口打开百度</a></body>

7.设置链接的颜色

  1. link连接的颜色
  2. alink正在点击的颜色
  3. vlink已经访问的连接颜色
<body link="red" alink="yellow" vlink="green">  <a href="https://taobao.com">淘宝</a>  <a href="https://jingdong.com">京东</a></body>