Python爬虫实验1-爬取新闻标题
1、代码部分:
import requests #它用于从网络获取 HTML 内容
from bs4 import BeautifulSoup #BeautifulSoup用于从HTML或XML文件中提取数据的Python库
url = "https://www.chinanews.com.cn/gn/2024/09-21/10289792.shtml"
response = requests.get(url)
#html_content = response.text
html_content = response.content
soup = BeautifulSoup(html_content, "html.parser")
# 查找特定的新闻标题元素
#使用 .find() 或 .find_all() 方法来查找标签,并使用 .get_text() 方法来获取标签内的文本。
titles = soup.find_all("h1", class_="content_left_title")
for title in titles:
#print("新闻标题:", title.text)
print("新闻标题:", title.get_text())
2、实验结果:
3、对标网站标题:
4、过程中遇到问题解决:
a、标题返回中文乱码
b、解决方法
- 拓展
a、find与find_all用法的区别
(相关链接:python 爬虫之find、find_all用法_python爬虫findall-优快云博客)
BeautifulSoup 文档里,find、find_all两者的定义如下:
find_all(tag, attributes, recursive, text, limit, keywords)
find_all(标签、属性、递归、文本、限制、关键词)
find(tag, attributes, recursive, text, keywords)
find与find_all的区别,find只会取符合要求的第一个元素,find_all会根据范围限制参数limit限定的范围取元素(默认不设置代表取所有符合要求的元素,find 等价于 find_all的 limit =1 时的情形),接下来将对每个参数一一介绍。
另外,find_all会将所有满足条件的值取出,组成一个list。
b、BeatifulSoup中'html.parser'和'lxml'用法的不同
(相关链接:BeautifulSoup 中 ‘lxml’ 和 ‘html.parser’有什么区别?_beautifulsoup html.parser-优快云博客)
c、BeautifulSoup 三个方法:getText()、text()和get_text()
(相关链接:BeautifulSoup 三个方法:getText()、text()和get_text()|极客教程 (geek-docs.com))