我想抓取多个 div 中嵌套元素中的文本
I’d like to scrape the text in nested elements within multiple divs
Using BeautifulSoup4 for python3 我想抓取 div 内嵌套元素中的文本。但首先,我想提取也嵌套在 divs.
元素中的 links
我将如何获取 link LINK-I-WANT.COM
和嵌套在如下内容中的图像 IMAGE-I-WANT.JPG
:
<section class="LINK_CLASS">
<div class="LINK_CLASS2">
<div class="LINK_CLASS3">
<span class="#">random text</span>
<a href="LINK-I-WANT.COM">
<img src="IMAGE-I-WANT.JPG" class="IMG_CLASS"/>
</a>
</div>
</div>
</section>
所有被抓取的 link 将被保存到一个列表中,脚本将遍历每个 link 并找到长行的内容:
<div class=“CLASS_ONE”>
<div class=“CLASS_TWO”>
<ul>
<li><span>FOO</span>BAR</li>
<li><span>FOO2</span>BAR2</li>
<li><span>FOO3</span>BAR3</li>
<li><span>FOO4</span>BAR4</li>
</ul>
</div>
</div>
使用上面的示例,我将如何访问 FOO#
和 BAR#
,以便当我遍历每个 link 并找到每个页面具有的信息时(FOO# & BAR#),我可以将它打印到生成的文本文件中,对于每个 link?
如果我说得不对,请原谅我。这是我对代码的尝试,我将不胜感激任何帮助。
def spider(max_pages):
page = 1
subs = []
print("Getting links...")
while page <= max_pages:
url = "http://example.com"
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text, "html.parser")
for link in soup.findAll("section",{"class":"LINK_CLASS"}):
这是我卡住的部分...如果 <a>
标签有 class,这会容易得多,不幸的是,<a>
标签只有href,所以我必须尝试通过指向其他元素来访问它。我不知道如何在元素中查找元素,有人可以帮我吗?
在这种情况下,有多种方法可以找到所需的链接。我会做一个 CSS selector:
for link in soup.select("section.LINK_CLASS > div.LINK_CLASS2 > div.LINK_CLASS3 > a[href]"):
print(link["href"])
.
会检查是否存在 class,>
是直接的父子关系检查。换句话说,我们正在定位具有 href
属性的 a
元素直接位于 div
元素下方,LINK_CLASS3
class 直接位于 [=15] 元素下方=] 元素 LINK_CLASS2
class 直接位于 section
元素内部 LINK_CLASS
class.
Using BeautifulSoup4 for python3 我想抓取 div 内嵌套元素中的文本。但首先,我想提取也嵌套在 divs.
元素中的 links我将如何获取 link LINK-I-WANT.COM
和嵌套在如下内容中的图像 IMAGE-I-WANT.JPG
:
<section class="LINK_CLASS">
<div class="LINK_CLASS2">
<div class="LINK_CLASS3">
<span class="#">random text</span>
<a href="LINK-I-WANT.COM">
<img src="IMAGE-I-WANT.JPG" class="IMG_CLASS"/>
</a>
</div>
</div>
</section>
所有被抓取的 link 将被保存到一个列表中,脚本将遍历每个 link 并找到长行的内容:
<div class=“CLASS_ONE”>
<div class=“CLASS_TWO”>
<ul>
<li><span>FOO</span>BAR</li>
<li><span>FOO2</span>BAR2</li>
<li><span>FOO3</span>BAR3</li>
<li><span>FOO4</span>BAR4</li>
</ul>
</div>
</div>
使用上面的示例,我将如何访问 FOO#
和 BAR#
,以便当我遍历每个 link 并找到每个页面具有的信息时(FOO# & BAR#),我可以将它打印到生成的文本文件中,对于每个 link?
如果我说得不对,请原谅我。这是我对代码的尝试,我将不胜感激任何帮助。
def spider(max_pages):
page = 1
subs = []
print("Getting links...")
while page <= max_pages:
url = "http://example.com"
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text, "html.parser")
for link in soup.findAll("section",{"class":"LINK_CLASS"}):
这是我卡住的部分...如果 <a>
标签有 class,这会容易得多,不幸的是,<a>
标签只有href,所以我必须尝试通过指向其他元素来访问它。我不知道如何在元素中查找元素,有人可以帮我吗?
在这种情况下,有多种方法可以找到所需的链接。我会做一个 CSS selector:
for link in soup.select("section.LINK_CLASS > div.LINK_CLASS2 > div.LINK_CLASS3 > a[href]"):
print(link["href"])
.
会检查是否存在 class,>
是直接的父子关系检查。换句话说,我们正在定位具有 href
属性的 a
元素直接位于 div
元素下方,LINK_CLASS3
class 直接位于 [=15] 元素下方=] 元素 LINK_CLASS2
class 直接位于 section
元素内部 LINK_CLASS
class.