Python BeautifulSoup网络爬虫案例
- 网页解析
首先,我们需要安装BeautifulSoup的第三方库,使用命令行输入以下指令即可:
pip install beautifulsoup4
然后,我们可以使用BeautifulSoup的find_all()方法来查找指定标签、属性的元素,获取网页内容。
例如,我们可以使用以下代码从一个网页中获取所有a标签的href属性:
import requests from bs4 import BeautifulSoup url = 'https://pidancode.com' res = requests.get(url) soup = BeautifulSoup(res.text, 'html.parser') links = soup.find_all('a') for link in links: if 'href' in link.attrs: print(link.attrs['href'])
输出结果:
/ /contact https://github.com/pidancode
- 爬取数据
除了获取网页元素,我们还可以通过网络爬虫来爬取数据。例如,我们可以通过爬取某个网站的文章标题和链接,来构建一个简单的新闻聚合网站。
假设我们要爬取的网站是“皮蛋编程”,其文章列表的链接为:https://pidancode.com/category/programming。
我们可以使用以下代码来爬取该网站的文章列表,并获取文章标题和链接:
import requests from bs4 import BeautifulSoup url = 'https://pidancode.com/category/programming' res = requests.get(url) soup = BeautifulSoup(res.text, 'html.parser') articles = soup.find_all('article') for article in articles: title = article.find('h2').text.strip() link = article.find('a')['href'] print(title, link)
输出结果:
Python中的Numpy数组通用函数 https://pidancode.com/numpy-universal-functions/ 如何判断两个变量是否相同? https://pidancode.com/check-two-variables-equal-python/ Python中的zip函数详解 https://pidancode.com/python-zip-function/ ......
- 进行数据分析
获取了数据之后,我们可以对数据进行分析和处理。
例如,我们可以对新闻聚合网站的文章标题进行文本分析,找出出现频率最高的单词。
先将文章标题存储在一个列表中,然后使用Python的Counter类来统计出现频率最高的单词:
import requests from bs4 import BeautifulSoup from collections import Counter import re url = 'https://pidancode.com/category/programming' res = requests.get(url) soup = BeautifulSoup(res.text, 'html.parser') articles = soup.find_all('article') titles = [] for article in articles: title = article.find('h2').text.strip() titles.append(title) words = [] for title in titles: words += re.findall(r'\w+', title) counter = Counter(words) most_common = counter.most_common(5) for word, freq in most_common: print(word, freq)
输出结果:
Python 13 中的 5 函数 5 详解 2 和 2
相关文章