改进这段python代码:for p in soup.find_all('div', {'class': 'article-detail'})[0].find_all('p'):
时间: 2023-09-04 15:10:13 浏览: 180
可以考虑加入异常处理,以应对找不到指定元素的情况。
改进后的代码如下:
```
try:
article_detail = soup.find_all('div', {'class': 'article-detail'})[0]
for p in article_detail.find_all('p'):
# 处理 p 元素
except IndexError:
# 处理找不到 article-detail 元素的情况
```
这样,在找不到指定元素时,程序不会因为 `IndexError` 异常而崩溃,而是会执行 `except` 块中的代码,从而提高了程序的健壮性。
相关问题
使用python爬取http://hbjd.com.cn/article-view-id-20554.html的文字和图片,并保存到本地
好的,下面是使用 Python 爬取 http://hbjd.com.cn/article-view-id-20554.html 的文字和图片,并保存到本地的示例代码:
```python
import requests
from bs4 import BeautifulSoup
import os
# 发送 GET 请求获取网页内容
url = 'http://hbjd.com.cn/article-view-id-20554.html'
response = requests.get(url)
# 使用 BeautifulSoup 解析网页内容
soup = BeautifulSoup(response.content, 'html.parser')
# 获取文章标题
title = soup.find('h1', {'class': 'article-title'}).text.strip()
# 获取文章正文
content = ''
for p in soup.find_all('div', {'class': 'article-detail'})[0].find_all('p'):
content += p.text.strip() + '\n'
# 创建保存图片的文件夹
if not os.path.exists(title):
os.makedirs(title)
# 获取文章中的图片链接并保存到本地
for img in soup.find_all('div', {'class': 'article-detail'})[0].find_all('img'):
img_url = 'http://hbjd.com.cn' + img['src']
img_name = img_url.split('/')[-1]
img_path = os.path.join(title, img_name)
img_data = requests.get(img_url).content
with open(img_path, 'wb') as f:
f.write(img_data)
# 保存文章标题和正文到本地文件
with open(title + '.txt', 'w', encoding='utf-8') as f:
f.write(title + '\n\n')
f.write(content)
```
运行以上代码,会在当前目录下创建一个以文章标题命名的文件夹,该文件夹中包含了文章中的所有图片,同时,还会生成一个以文章标题命名的文本文件,其中包含了文章的标题和正文。
使用python抓取https://www.chinacourt.org/article/detail/2023/08/id/7459349.shtml页面录入的新闻
您好!您可以使用Python中的requests库和BeautifulSoup库来抓取并解析网页内容。以下是一个简单的示例代码,可以帮助您获取该网页上的新闻标题和内容:
```python
import requests
from bs4 import BeautifulSoup
url = "https://www.chinacourt.org/article/detail/2023/08/id/7459349.shtml"
# 发送HTTP GET请求
response = requests.get(url)
# 解析HTML内容
soup = BeautifulSoup(response.content, "html.parser")
# 获取新闻标题
title = soup.find("h1", class_="title").text.strip()
# 获取新闻内容
content = soup.find("div", class_="content").text.strip()
# 打印结果
print("标题:", title)
print("内容:", content)
```
请注意,此代码仅适用于特定网页结构的抓取,如果目标网页结构发生变化,您可能需要相应地调整代码。另外,为了避免对网站造成过大压力,请确保你的爬虫程序符合网站的爬虫规则,并尊重网站的访问频率限制。
阅读全文