xuegaoxiansen 发表于 2022-10-2 10:12

感谢各位的帮助

本帖最后由 xuegaoxiansen 于 2022-10-2 11:27 编辑

from bs4 import BeautifulSoup

import requests

# 发起请求
url = 'https://www.mmonly.cc/tag/qcxhlwkxww/'
resp = requests.get(url)

# 获得html
wangye = resp.content.decode('gbk')

# 使用BS4解析一下
soup = BeautifulSoup(wangye,'html.parser')

# find_all返回的永远是个数组,既然是数组,就要选择相应的元素
soup1 = soup.find_all('div',attrs={"class":'ABox'})

# 所有的class为ABox的div下的所有a标签
soup2 = soup1.find_all('a')

for item in soup2:
# 拿到a标签下面的img,img里面的属性src
img_src = item.find_all('img').attrs['src']
# 获得文件的名称
name = item.find_all('img').attrs['alt']
# 将符号<b>和</b>删除
name = name.replace("<b>","")
name = name.replace("</b>", "")
# 访问这个路径,然后下载即可
resp = requests.get(img_src)
with open('./mp4/'+name+'.jpg','wb') as file:
       file.write(resp.content)
print(img_src)

luxingyu329 发表于 2022-10-2 10:15

你的name固定了,后面的新文件把就文件覆盖了

xuegaoxiansen 发表于 2022-10-2 10:22

luxingyu329 发表于 2022-10-2 10:15
你的name固定了,后面的新文件把就文件覆盖了

我去掉名称,这样子也是只能获取第一张{:1_924:}

from bs4 import BeautifulSoup

import requests

# 发起请求
url = 'https://www.mmonly.cc/tag/qcxhlwkxww/'
resp = requests.get(url)

# 获得html
wangye = resp.content.decode('gbk')

# fixme(高亮的意思) 使用BS4解析一下
soup = BeautifulSoup(wangye,'html.parser')

# find_all返回的永远是个数组,既然是数组,就要选择相应的元素
soup1 = soup.find_all('div',attrs={"class":'ABox'})

# 所有的class为ABox的div下的所有a标签
soup2 = soup1.find_all('a')

for item in soup2:
# 拿到a标签下面的img,img里面的属性src
img_src = item.find_all('img').attrs['src']

# 访问这个路径,然后下载即可
resp = requests.get(img_src)
with open('./mp4/''.jpg','wb') as file:
       file.write(resp.content)
print(img_src)

advancejar 发表于 2022-10-2 10:51

打不开这个网站,怎么回事呢

sgw1970 发表于 2022-10-2 10:53

advancejar 发表于 2022-10-2 10:51
打不开这个网站,怎么回事呢

可以打开,不要全复制,只到cc

知心 发表于 2022-10-2 10:57

xuegaoxiansen 发表于 2022-10-2 10:22
我去掉名称,这样子也是只能获取第一张

from bs4 import Beautifu ...

with open('./mp4/''.jpg','wb') as file: 这一段的图片命名,用个open('./mp4/'+time.time()+'.jpg','wb')

Hazy 发表于 2022-10-2 11:06

本帖最后由 Hazy 于 2022-10-2 11:10 编辑

from bs4 import BeautifulSoup

import requests

# 发起请求
url = 'https://www.mmonly.cc/tag/qcxhlwkxww/'
resp = requests.get(url)

# 获得html
wangye = resp.content.decode('gbk')

# 使用BS4解析一下
soup = BeautifulSoup(wangye,'html.parser')

# find_all返回的永远是个数组,既然是数组,就要选择相应的元素
soup1 = soup.find_all('div',attrs={"class":'ABox'})

#在你的代码里 soup1 是你提取出来的所有div, 所以你要去遍历soup1, 遍历每个div, 拿到a标签, 但是你只取了第一个div的a标签, 所以你只获取到了一个第一个div里的图片
for item in soup1:
    soup2 = item.find_all('a')
    # 拿到a标签下面的img,img里面的属性src
    img_src = item.find_all('img').attrs['src']
    # 获得文件的名称
    name = item.find_all('img').attrs['alt']
    # 将符号<b>和</b>删除
    name = name.replace("<b>","")
    name = name.replace("</b>", "")
    # 访问这个路径,然后下载即可
    resp = requests.get(img_src)
    with open('./mp4/'+name+'.jpg','wb') as file:
      file.write(resp.content)
    print(img_src)

Hazy 发表于 2022-10-2 11:10

Hazy 发表于 2022-10-2 11:06
from bs4 import BeautifulSoup

import requests


在你的代码里 soup1 是你提取出来的所有div, 所以你要去遍历soup1, 遍历每个div, 拿到a标签, 但是你只取了第一个div的a标签, 所以你只获取到了一个第一个div里的图片

L648520XY 发表于 2022-10-2 11:12

感觉不太对,代码不知道哪出错了

Arcticlyc 发表于 2022-10-2 11:29

多来点多来点:lol
页: [1]
查看完整版本: 感谢各位的帮助