[英]Web scraping with Beautiful Soup Python
我目前正在尝试从网站上抓取产品名称,但是,文本包含在我以前从未见过的标签中,因此不知道如何获取文本。
<h1 class="protect" data-category="Jackets" data-ino="SS18J42" data-
rd="02/22/2018" data-rw="1SS18" itemprop="name">Gradient Puffy
Jacket</h1>
您可以使用BeautifulSoup
:
from bs4 import BeautifulSoup as soup
s = """
<h1 class="protect" data-category="Jackets" data-ino="SS18J42" data-
rd="02/22/2018" data-rw="1SS18" itemprop="name">Gradient Puffy Jacket</h1>
"""
new_s = soup(s, 'lxml').find('h1', {'itemprop':'name'}).text
输出:
u'Gradient Puffy Jacket'
添加到Ajax1234的答案。 如果要通过其他html属性进行搜索:
from bs4 import BeautifulSoup
s = """
<h1 class="protect" data-category="Jackets" data-ino="SS18J42" data-
rd="02/22/2018" data-rw="1SS18" itemprop="name">Gradient Puffy Jacket</h1>
"""
soup = BeautifulSoup(s, 'html.parser')
print(soup.find('h1', {'class': 'protect'}).text)
print(soup.find('h1', {'data-category': 'Jackets'}).text)
print(soup.find('h1', {'data-ino': 'SS18J42'}).text)
等等...
BeautifulSoup允许您使用属性访问元素,因此可以使用以下方法:
from bs4 import BeautifulSoup
html = """<h1 class="protect" data-category="Jackets" data-ino="SS18J42" data-
rd="02/22/2018" data-rw="1SS18" itemprop="name">Gradient Puffy
Jacket</h1>"""
soup = BeautifulSoup(html, "html.parser")
print soup.h1.text
借助在beautifulsoup中find
soup = BeautifulSoup(html, "html.parser")
print soup.find('h1',{'class':'protect'}).text
我们可以使用以下两种方法轻松找到所需的数据,这两种方法都运行良好。
更多 ino 请阅读文档
第一种方法
from bs4 import BeautifulSoup as soup
html = """
<div itemscope> <p itemprop="a">1</p>
"""
src = soup(html, 'lxml').find('p', {'itemprop':'a'}).text
print(src)
输出 - 1
第二种方法
from bs4 import BeautifulSoup
s = """
<a class="doctor-name" itemprop="name" href="/doctors/gastroenterologists /required-code-1689679557">Required-code-or-output</a>
"""
soup = BeautifulSoup(s, 'html.parser')
print(soup.find('a', {'class': 'doctor-name'}).text)
print(soup.find('a', {'itemprop': 'name'}).text)
输出 - 必需的代码或输出
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.