如何获取<li>标签信息(BeautifulSoup网页抓取)?
How to get <li> tag information (BeautifulSoup Webscraping)?
我正在从这个页面抓取信息:
https://lawyers.justia.com/lawyer/michael-paul-ehline-85006。
我正在尝试抓取费用部分下的所有信息。
我想要的是以下信息:
免费咨询
是的
接受信用卡
维萨卡、万事达卡、美国运通卡
或有费用
仅在人身伤害案件中。
费率、保留费和其他信息
费率视具体情况而定。
这是我试过的:
for thing in soup.findAll('ul', attrs={"class": "has-no-list-styles"}):
ul=thing.find('<li>')
print(ul)
但输出是:
<li>Intellectual Property</li>
<li>Copyright Law</li>
<li><strong>English</strong></li>
提前致谢。
更新:我找到了一个解决方案,但它给了我一个无限循环,有什么建议吗?
for o in soup.findAll('div', attrs={"class": "block-wrapper"}):
for tag in soup.findAll('div', attrs={"class": "block-wrapper"}):
if tag.string:
tag.string.replace_with("")
for de in o.findAll("li"):
if de != []:
de=remove_tags(str(de))
print (de)
尝尝这道汤。它的灵感来自 dabinsous answer。它所做的只是寻找他详细说明的图标,然后转到其父级的下一个兄弟姐妹,并从那里获取兄弟姐妹的文本。
import requests
from bs4 import BeautifulSoup
URL = "https://lawyers.justia.com/lawyer/michael-paul-ehline-85006"
r = requests.get(URL)
soup = BeautifulSoup(r.content, 'html.parser')
uls = soup.find('span', attrs={"class": "jicon -large jicon-fee"})
print(uls.parent.nextSibling.text)
调整您的抓取以满足该要求,看看是否有帮助!
试试这个。
from simplified_scrapy import SimplifiedDoc,req
html = req.get('https://lawyers.justia.com/lawyer/michael-paul-ehline-85006')
doc = SimplifiedDoc(html)
ul = doc.getElement('ul',attr='class',value='has-no-list-styles',start='class="jicon -large jicon-fee"') # Use class="jicon -large jicon-fee" to locate
print (ul.text)
结果:
Free ConsultationYesCredit Cards AcceptedVisa, Mastercard, American ExpressContingent FeesIn personal injury cases only.Rates, Retainers and Additional InformationRates vary on a case by case basis.
我正在从这个页面抓取信息:
https://lawyers.justia.com/lawyer/michael-paul-ehline-85006。
我正在尝试抓取费用部分下的所有信息。
我想要的是以下信息:
免费咨询
是的
接受信用卡
维萨卡、万事达卡、美国运通卡
或有费用
仅在人身伤害案件中。
费率、保留费和其他信息
费率视具体情况而定。
这是我试过的:
for thing in soup.findAll('ul', attrs={"class": "has-no-list-styles"}):
ul=thing.find('<li>')
print(ul)
但输出是:
<li>Intellectual Property</li>
<li>Copyright Law</li>
<li><strong>English</strong></li>
提前致谢。
更新:我找到了一个解决方案,但它给了我一个无限循环,有什么建议吗?
for o in soup.findAll('div', attrs={"class": "block-wrapper"}):
for tag in soup.findAll('div', attrs={"class": "block-wrapper"}):
if tag.string:
tag.string.replace_with("")
for de in o.findAll("li"):
if de != []:
de=remove_tags(str(de))
print (de)
尝尝这道汤。它的灵感来自 dabinsous answer。它所做的只是寻找他详细说明的图标,然后转到其父级的下一个兄弟姐妹,并从那里获取兄弟姐妹的文本。
import requests
from bs4 import BeautifulSoup
URL = "https://lawyers.justia.com/lawyer/michael-paul-ehline-85006"
r = requests.get(URL)
soup = BeautifulSoup(r.content, 'html.parser')
uls = soup.find('span', attrs={"class": "jicon -large jicon-fee"})
print(uls.parent.nextSibling.text)
调整您的抓取以满足该要求,看看是否有帮助!
试试这个。
from simplified_scrapy import SimplifiedDoc,req
html = req.get('https://lawyers.justia.com/lawyer/michael-paul-ehline-85006')
doc = SimplifiedDoc(html)
ul = doc.getElement('ul',attr='class',value='has-no-list-styles',start='class="jicon -large jicon-fee"') # Use class="jicon -large jicon-fee" to locate
print (ul.text)
结果:
Free ConsultationYesCredit Cards AcceptedVisa, Mastercard, American ExpressContingent FeesIn personal injury cases only.Rates, Retainers and Additional InformationRates vary on a case by case basis.