import os import requests from bs4 import BeautifulSoup # 定义函数,下载图片并保存到指定目录下 def download_img(img_url, path): response = requests.get(img_url) with open(path, 'wb') as f: f.write(response.content) # 论坛模块链接 url = 'https://bbs.zol.com.cn/dcbbs/d15.html' # 发送请求 response = requests.get(url) # 解析页面 soup = BeautifulSoup(response.text, 'html.parser') # 找到所有帖子的链接 post_links = soup.select('.post-td a') # 遍历所有帖子链接 for post_link in post_links: post_url = post_link['href'] post_response = requests.get(post_url) post_soup = BeautifulSoup(post_response.text, 'html.parser') # 找到帖子标题 post_title = post_soup.select('.post-title a')[0].text.strip() # 创建以帖子标题为名字的文件夹 folder_path = os.path.join(os.getcwd(), post_title) if not os.path.exists(folder_path): os.makedirs(folder_path) # 找到帖子中所有图片链接 img_links = post_soup.select('.post-text img') # 遍历所有图片链接,下载并保存到文件夹中 for i, img_link in enumerate(img_links): img_url = img_link['src'] img_path = os.path.join(folder_path, f'{i}.jpg') download_img(img_url, img_path)报错修改C:\ProgramData\Anaconda3\lib\site-packages\urllib3\connection.py:329: SystemTimeWarning: System time is way off (before 2019-01-01). This will probably lead to SSL verification errors warnings.warn(
时间: 2024-03-29 13:40:43 浏览: 119
这个报错是由于你的系统时间设置不正确导致的,可以尝试手动修改系统时间来解决。
如果你使用的是Anaconda环境,可以尝试打开Anaconda Prompt,使用以下命令来更新conda的环境:
```
conda update --all
```
如果还是无法解决问题,可以尝试升级urllib3库到最新版本:
```
pip install --upgrade urllib3
```
如果还有问题,请提供完整报错信息,我会尽力帮助你解决。
相关问题
import requests from bs4 import BeautifulSoup import os def download_images(keyword, num_images): url = f"https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word={keyword}&ct=201326592&v=flip" response = requests.get(url) soup = BeautifulSoup(response.content, "html.parser") img_tags = soup.find_all("img", class_="main_img img-hover") # 创建一个目录来保存图片 os.makedirs(keyword, exist_ok=True) count = 0 for img_tag in img_tags: if count == num_images: break img_url = img_tag["src"] try: # 下载图片 response = requests.get(img_url) with open(f"{keyword}/{count+1}.jpg", "wb") as f: f.write(response.content) count += 1 print(f"Downloaded image {count}/{num_images}") except: print(f"Failed to download image {count+1}") keyword = "苹果" # 搜索的关键词 num_images = 10 # 要下载的图片数量 download_images(keyword, num_images)
这段代码使用了requests库和BeautifulSoup库来从百度图片搜索中下载指定关键词的图片。具体步骤如下:
1. 构建搜索URL:根据给定的关键词,构建百度图片搜索的URL。
2. 发送请求并解析HTML:使用requests库发送GET请求获取网页的HTML文档,并使用BeautifulSoup库解析HTML文档。
3. 查找图片标签:使用find_all方法从HTML文档中找到class属性为"main_img img-hover"的img标签,存储在img_tags变量中。
4. 创建目录:使用os.makedirs函数创建一个以关键词命名的目录,用于保存图片。
5. 下载图片:遍历img_tags列表,并依次下载对应的图片。将图片以关键词/序号.jpg的形式保存在之前创建的目录中。
你提供的代码将下载指定关键词的前10张图片,并保存在以关键词命名的目录中。
import os import requests from bs4 import BeautifulSoup def create_image_folder(keyword): desktop_path = os.path.join(os.path.expanduser("~"), "Desktop") folder_path = os.path.join(desktop_path, keyword) os.makedirs(folder_path, exist_ok=True) return folder_path def download_images(keyword, folder_path): url = f"https://image.baidu.com/search/index?tn=baiduimage&word={keyword}" response = requests.get(url) response.raise_for_status() soup = BeautifulSoup(response.text, "html.parser") image_tags = soup.find_all("img", class_="main_img img-hover") for i, image_tag in enumerate(image_tags): image_url = image_tag.get("data-imgurl") if image_url: response = requests.get(image_url) response.raise_for_status() image_path = os.path.join(folder_path, f"{i+1}.jpg") with open(image_path, "wb") as f: f.write(response.content) print(f"下载图片 {i+1}") # 获取用户输入的关键词 keyword = input("请输入关键词:") # 创建文件夹并下载图片 folder_path = create_image_folder(keyword) download_images(keyword, folder_path)
这是一个用于从百度图片搜索下载图片的Python脚本。它使用了`os`和`requests`库来创建文件夹和发送HTTP请求,以及使用`BeautifulSoup`库来解析HTML页面。
首先,`create_image_folder`函数接收一个关键词作为参数,并在桌面上创建一个以关键词命名的文件夹。如果文件夹已存在,则不会创建新的文件夹。
然后,`download_images`函数接收关键词和文件夹路径作为参数。它使用关键词构建百度图片搜索的URL,并发送HTTP请求获取搜索结果页面。然后使用`BeautifulSoup`解析页面的HTML内容。
在搜索结果页面中,图片的URL嵌入在`<img>`标签的`data-imgurl`属性中。函数遍历所有的图片标签,并下载每个图片到指定的文件夹路径中。下载的图片按照顺序命名,例如"1.jpg","2.jpg"等。
最后,脚本获取用户输入的关键词,并调用`create_image_folder`和`download_images`函数来创建文件夹并下载图片。
请注意,在运行脚本之前,确保已经安装了所需的库(`os`、`requests`和`bs4`),并且网络连接正常。
阅读全文