为什么爬取图片会爬取到上面的代码
时间: 2023-10-03 15:03:42 浏览: 38
这可能是因为你使用的爬虫程序没有正确配置或者没有正确过滤网页内容。当你请求一个包含图片的网页时,网页服务器会将网页的HTML代码和图片的二进制数据一起返回。如果你的爬虫程序没有正确过滤HTML代码,就有可能将代码也爬取下来并保存为文件。为了避免这种情况,你可以使用专门的图片爬虫程序,或者在编写爬虫程序时,仅请求图片的URL并保存图片二进制数据,而不是整个网页的HTML代码。
相关问题
python爬虫爬取图片并保存到本地的代码
以下是爬取图片并保存到本地的Python代码示例:
```python
import requests
from bs4 import BeautifulSoup
import os
url = 'https://www.example.com/images/' # 图片的网址
dir_name = 'example_images' # 图片保存的文件夹名称
if not os.path.exists(dir_name):
os.makedirs(dir_name)
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')
for img in soup.find_all('img'):
img_url = img.get('src')
if img_url.startswith('http'):
img_name = img_url.split('/')[-1]
img_path = os.path.join(dir_name, img_name)
img_data = requests.get(img_url).content
with open(img_path, 'wb') as f:
f.write(img_data)
print('已保存图片:', img_path)
```
在上面的代码中,我们首先指定了要爬取的图片的网址和保存图片的文件夹名称。然后,我们使用requests库发送了一个GET请求,获取网页的HTML源代码,并使用BeautifulSoup库解析HTML源代码。接下来,我们遍历HTML中所有的img标签,获取图片的URL,并使用requests库下载图片,并将其保存到本地文件夹中。最后,我们打印出已保存的图片的路径。
值得注意的是,我们还使用了os库来检查并创建保存图片的文件夹。此外,我们还检查了图片URL是否以http开头,以避免下载其他类型的资源。
用Python写一个爬取图片的代码
下面是一个简单的使用Python爬取图片的示例代码:
```python
import requests
from bs4 import BeautifulSoup
import urllib
# 目标网站的URL地址
url = "https://www.example.com"
# 发送GET请求获取网页内容
response = requests.get(url)
# 使用BeautifulSoup解析网页内容,提取图片URL列表
soup = BeautifulSoup(response.content, features="html.parser")
img_tags = soup.find_all("img")
img_urls = [img["src"] for img in img_tags]
# 循环遍历图片URL列表,下载图片到本地
for url in img_urls:
filename = url.split("/")[-1]
urllib.request.urlretrieve(url, filename)
print("下载图片:%s" % filename)
```
上面的代码中,首先使用requests库发送GET请求获取网页内容,然后使用BeautifulSoup库解析网页内容,提取所有的图片URL列表。最后使用urllib库中的urlretrieve()方法循环遍历图片URL列表,下载图片到本地,并输出下载图片的文件名。需要注意的是,需要根据实际情况对网页内容以及图片URL的解析进行调整。