通过百度引擎,爬取以“开源之夏”为搜索关键词最新的500条新闻的标题和链接
pip install requests beautifulsoup4
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内容。
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
这个函数将返回一个包含新闻标题和链接的列表。
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>
特殊字符
注释<!-- -->
一、换行符
<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属性:
可以打开别人的网页:
<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>直接链接内部页面名称即可:
<a href="1.外部链接.html">打开内部链接</a>如果当时没有确定链接目标时,通常将链接标签的href属性值定义为“#”(即href="#"),表示该链接暂时为一个空链接:
<a href="#">空链接</a>通过创建锚点链接,用户能够快速定位到目标内容。创建锚点链接分为两步:
<h1 id="top">顶部</h1>...<a href="#top">回到顶部</a>跳转到其他页面:
<a href="5.锚点链接2.html#top">回到另一个页面顶部</a>5.锚点链接2.html
<h1 id="top">顶部</h1>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><body link="red" alink="yellow" vlink="green"> <a href="https://taobao.com">淘宝</a> <a href="https://jingdong.com">京东</a></body> *请认真填写需求信息,我们会在24小时内与您取得联系。