通過百度引擎,爬取以“開源之夏”為搜索關鍵詞最新的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 > 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小時內與您取得聯系。