爬取网站数据是Python中常见的任务之一。本攻略将介绍如何使用Python爬取简书首页文章标题和文章链接,并提供一些示例。
步骤一:安装requests和BeautifulSoup库
在开始爬取简书首页文章标题和文章链接之前,我们需要安装requests和BeautifulSoup库。我们可以使用pip命令来安装这两个库:
pip install requests
pip install beautifulsoup4
步骤二:发送HTTP请求并解析HTML
以下是一个示例代码,用于发送HTTP请求并解析HTML:
import requests
from bs4 import BeautifulSoup
url = 'https://www.jianshu.com/'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
在上面的代码中,我们使用requests库发送HTTP请求,并使用BeautifulSoup库解析HTML。我们使用get方法发送GET请求,并将响应文本传递给BeautifulSoup类的构造函数。
步骤三:提取文章标题和文章链接
以下是一个示例代码,用于提取文章标题和文章链接:
import requests
from bs4 import BeautifulSoup
url = 'https://www.jianshu.com/'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
for article in soup.select('ul.note-list li'):
title = article.select_one('a.title').text.strip()
link = 'https://www.jianshu.com' + article.select_one('a.title')['href']
print(title)
print(link)
在上面的代码中,我们使用select方法从HTML文档中选择元素。我们使用CSS选择器选择文章列表中的每个文章,并使用select_one方法选择文章标题和文章链接。我们使用text方法获取标题文本,并使用['href']获取链接。最后,我们打印标题和链接。
示例
以下是两个示例,演示如何使用Python爬取简书首页文章标题和文章链接。
示例1:将文章标题和文章链接保存到CSV文件中
import csv
import requests
from bs4 import BeautifulSoup
url = 'https://www.jianshu.com/'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
with open('articles.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['Title', 'Link'])
for article in soup.select('ul.note-list li'):
title = article.select_one('a.title').text.strip()
link = 'https://www.jianshu.com' + article.select_one('a.title')['href']
writer.writerow([title, link])
在上面的示例中,我们使用csv库将文章标题和文章链接保存到CSV文件中。我们使用with语句打开CSV文件,并使用csv.writer方法创建一个写入器。我们使用writerow方法写入标题行,并使用for循环遍历每个文章。最后,我们使用writerow方法写入标题和链接。
示例2:将文章标题和文章链接保存到MongoDB数据库中
import pymongo
import requests
from bs4 import BeautifulSoup
url = 'https://www.jianshu.com/'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['jianshu']
collection = db['articles']
for article in soup.select('ul.note-list li'):
title = article.select_one('a.title').text.strip()
link = 'https://www.jianshu.com' + article.select_one('a.title')['href']
collection.insert_one({'title': title, 'link': link})
在上面的示例中,我们使用pymongo库将文章标题和文章链接保存到MongoDB数据库中。我们使用MongoClient类创建一个客户端,并使用insert_one方法将每个文章插入到集合中。我们使用select方法选择每个文章,并使用select_one方法选择标题和链接。最后,我们将标题和链接作为字典插入到集合中。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3实现爬取简书首页文章标题和文章链接的方法【测试可用】 - Python技术站