自动爬取给定的多个网址的网页内容,提取文本和标题,图片,并将标题和文本,图片存储到doc格式的文件中,直接写python代码
时间: 2023-08-31 21:29:51 浏览: 205
### 回答1:
好的,这里是一个例子,希望能帮到你:
```python
import requests
from bs4 import BeautifulSoup
from docx import Document
# 创建doc文件
document = Document()
urls = ['https://www.example1.com', 'https://www.example2.com']
# 遍历所有给定的网址
for url in urls:
# 发送GET请求获取网页内容
response = requests.get(url)
# 使用BeautifulSoup解析网页
soup = BeautifulSoup(response.text, 'html.parser')
# 提取网页标题
title = soup.title.string
# 提取网页文本
text = soup.get_text()
# 提取网页中的图片
images = []
for img in soup.find_all('img'):
images.append(img.get('src'))
# 将标题和文本添加到doc文件中
document.add_heading(title, level=1)
document.add_paragraph(text)
# 将图片添加到doc文件中
for image in images:
document.add_picture(image)
# 保存doc文件
document.save('output.docx')
```
希望这能帮到你!
### 回答2:
以下是一个示例的Python代码,用于自动爬取给定的多个网址的网页内容,并提取文本和标题,以及图片,并将它们存储到doc格式的文件中。
```python
import requests
from bs4 import BeautifulSoup
from docx import Document
from docx.shared import Inches
# 给定的多个网址列表
urls = ['https://example1.com', 'https://example2.com', 'https://example3.com']
# 创建一个空的Word文档
document = Document()
# 遍历每个网址
for url in urls:
# 发送HTTP请求获取网页内容
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取标题
title = soup.title.string
# 提取文本内容
text = soup.get_text()
# 提取图片并存储到doc文件中
images = []
for img in soup.find_all('img'):
img_url = img.get('src')
if img_url.startswith('http'):
img_data = requests.get(img_url).content
image_name = img_url.split('/')[-1]
with open(image_name, 'wb') as f:
f.write(img_data)
document.add_picture(image_name, width=Inches(6))
images.append(image_name)
# 将标题和文本添加到文档中
document.add_heading(title, level=1)
document.add_paragraph(text)
# 添加图片标题
if images:
document.add_heading('图片', level=2)
for image in images:
document.add_paragraph(image)
# 保存为doc文件
document.save('web_content.docx')
```
这段代码使用`requests`库发送HTTP请求获取网页内容,并使用`BeautifulSoup`库解析网页。它提取了网页的标题和文本部分,并通过`docx`库创建Word文档并将内容添加到文档中。图片会以URL最后一个斜杠后的名称保存到本地,并添加到文档中。
需要注意的是,运行此代码前,需要确保已经安装了`requests`、`bs4`和`python-docx`库,可以使用`pip install`命令安装它们。
### 回答3:
以下是一个用Python实现的自动爬取多个网址的网页内容,并将标题、文本和图片存储到doc格式文件的示例代码:
```python
import requests
from bs4 import BeautifulSoup
from docx import Document
from docx.shared import Inches
# 给定的多个网址
urls = ['http://example.com/page1', 'http://example.com/page2', 'http://example.com/page3']
# 创建一个新的Word文档
doc = Document()
# 遍历每个网址
for url in urls:
# 发送请求获取网页内容
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
# 提取标题
title = soup.title.string
# 提取文本内容
text = ''
paragraphs = soup.find_all('p')
for paragraph in paragraphs:
text += paragraph.get_text() + '\n'
# 提取图片并存储到doc文件中
images = soup.find_all('img')
for image in images:
image_url = image['src']
response = requests.get(image_url)
image_file = open('image.jpg', 'wb')
image_file.write(response.content)
image_file.close()
doc.add_picture('image.jpg', width=Inches(4))
# 将标题和文本内容写入doc文件中
doc.add_heading(title, level=1)
doc.add_paragraph(text)
doc.add_page_break()
# 保存doc文件
doc.save('output.docx')
```
请注意,这只是一个简单的示例代码,实际的网页结构可能会有所变化,你可能需要根据实际情况进行适当的修改和调整。
阅读全文