鱼C论坛

 找回密码
 立即注册
查看: 730|回复: 1

爬虫怎么保存到指定的文件夹?

[复制链接]
发表于 2023-12-5 21:01:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
import requests
from lxml import etree

url = 'https://ssr1.scrape.center/'

headers={
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'}
name = requests.get(url=url,headers=headers)

n = name.text

n1 = etree.HTML(n)
t = n1.xpath('//div[@id="index"]//a/img/@src')
n = n1.xpath('//div[@id="index"]//a/h2/text()')

for i in range(len(t)):
    url=t[i]
    n1=n[i]
    # print(url)
    img = requests.get(url=url,headers=headers)
    with open(n1+'.jpg','wb') as f:  #这里怎么保存到指定的文件夹中,比如 :  d:/图片/爬虫图片
        f.write(img.content)
      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-12-5 21:02:38 | 显示全部楼层
要保存文件到指定的文件夹,你可以使用Python的os模块中的函数来操作文件路径。首先,你需要创建一个文件夹,用于保存爬取的图片。然后,你可以使用os.path.join()函数来生成文件的完整路径。

下面是修改后的代码示例:
  1. import os
  2. import requests
  3. from lxml import etree
  4. url = 'https://ssr1.scrape.center/'
  5. headers = {
  6.     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'
  7. }
  8. name = requests.get(url=url, headers=headers)
  9. n = name.text
  10. n1 = etree.HTML(n)
  11. t = n1.xpath('//div//a/img/@src')
  12. n = n1.xpath('//div//a/h2/text()')
  13. # 指定文件夹路径
  14. folder_path = 'd:/图片/爬虫图片'
  15. if not os.path.exists(folder_path):
  16.     os.makedirs(folder_path)
  17. for i in range(len(t)):
  18.     url = t[i]
  19.     n1 = n[i]
  20.     # 如果文件名中包含特殊字符,可以使用os.path.basename()来移除路径,并保留文件名部分
  21.     filename = os.path.basename(n1) + '.jpg'
  22.     file_path = os.path.join(folder_path, filename)
  23.     img = requests.get(url=url, headers=headers)
  24.     with open(file_path, 'wb') as f:
  25.         f.write(img.content)
复制代码

在上述代码中,我们新增了两行代码,其中`folder_path`变量指定了文件夹路径,并使用`os.makedirs()`函数创建文件夹(如果文件夹不存在)。然后,我们使用`os.path.join()`函数将文件名与文件夹路径拼接成完整的文件路径。

注意,代码中还使用了`os.path.basename()`方法来从文件路径中提取文件名,这样可以确保文件名中不包含任何路径信息。

以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-2 23:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表