如何使用Python和BeautifulSoup中的类过滤标签?

m4rk_Henry_ftw

我正在尝试使用beautifulsoup HTML解析器从网站上抓取图像。

该站点上的每个图像都有2种图像标签。一个用于缩略图,另一个用于较大尺寸的图像,该图像仅在单击缩略图并展开后才会显示。较大的标签包含class =“ expanded-image”属性。

我正在尝试通过HTML进行解析,并获取包含图像源的扩展图像的“ src”属性。

当我尝试执行代码时,什么也没有发生。它只是说过程完成了,没有刮任何图像。但是,当我不尝试过滤代码并仅将tag作为参数时,它将下载所有缩略图。

这是我的代码:

import webbrowser, requests, os
from bs4 import BeautifulSoup

def getdata(url):
    r = requests.get(url)
    return r.text

htmldata = getdata('https://boards.4chan.org/a/thread/30814')
soup = BeautifulSoup(htmldata, 'html.parser')

list = []

for i in soup.find_all("img",{"class":"expanded-thumb"}):
    list.append(i['src'].replace("//","https://"))

def download(url, pathname):
    if not os.path.isdir(pathname):
        os.makedirs(pathname)

    filename = os.path.join(pathname, url.split("/")[-1])
    response = requests.get(url, stream=True)

    with open(filename, "wb") as f:
        f.write(response.content)

for a in list:
    download(a,"file")
路德维斯珀斯

使用“列表”作为变量名可能会遇到问题。这是python中的一种类型。从此开始(用所需的任何线程替换TEST_4CHAN_URL),并结合上面注释中的建议。

import requests
from bs4 import BeautifulSoup

TEST_4CHAN_URL = "https://boards.4chan.org/a/thread/<INSERT_THREAD_ID_HERE>"

def getdata(url):
    r = requests.get(url)
    return r.text

htmldata = getdata(TEST_4CHAN_URL)
soup = BeautifulSoup(htmldata, "html.parser")

src_list = []

for i in soup.find_all("a", {"class":"fileThumb"}):
    src_list.append(i['href'].replace("//", "https://"))

print(src_list)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用beautifulsoup和python在span标签中获取文本

如何使用Python和BeautifulSoup解析类

如何使用Python和Beautifulsoup从脚本标签获取JavaScript变量

如何使用 python 和 BeautifulSoup 获取标签内的文本

如何使用 Selenium 和 BeautifulSoup 从标签中获取文本

如何使用BeautifulSoup选择href类标签?

如何在 Python 中使用 BeautifulSoup 从文本中获取标签

网页抓取 - 从使用 BeautifulSoup 和 Python 的类中获取文本?

使用 BeautifulSoup 和 Python 从多个标签中提取文本,例如具有类的 h1 和 p 标签

使用 Python 和 BeautifulSoup 抓取 alt 标签

使用 BeautifulSoup 进行简单且少量的抓取中的标签和类的 HTML 问题

Python和Beautifulsoup 4-无法过滤类?

在 BeautifulSoup 中,如何访问与类名相同的标签的 str ?

如何使用python和BeautifulSoup从xml中删除完整元素

如何使用 Python 和 BeautifulSoup 从 html 表中抓取数据?

如何使用python和BeautifulSoup在xml中提取父元素的标签

使用beautifulSoup,Python在h3和div标签中刮取文本

使用beautifulsoup python在h3和p标签中刮取文本

如何使用beautifulsoup4在python中的pre标签中获取文本?

如何使用python在beautifulsoup中获取标签内容并在一行中打印?

如何使用BeautifulSoup从Python中的字符串中删除html标签

如何使用 selenium 和 python 抓取 div 标签内的标签标签中的文本值?

如何使用 BeautifulSoup 从 xml 中提取文本和标签属性

使用 Python 和 BeautifulSoup 提取数字(多个跨度和类)

使用BeautifulSoup和Python从item标签获取地址文本

使用 python 和 BeautifulSoup 抓取不完整的标签

使用 Python、Selenium 和 BeautifulSoup 来抓取标签的内容?

使用python和beautifulsoup捕获来自td标签的数据

使用 BeautifulSoup 时从 html 中删除打开和关闭标签