我正在抓取此页面上的信息:https://lawyers.justia.com/lawyer/michael-paul-ehline-85006。我试图将“收费”部分下的所有信息都抓取到。我想要的是以下信息:免费咨询是接受信用卡Visa,万事达卡,美国运通卡或有费用仅在人身伤害的情况下。价格,固定器和其他信息价格视情况而定。
这是我尝试过的:
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>
先谢谢您。
尝试一下。
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.
尝试这汤。它的灵感来自繁琐的回答。它所做的只是查找他详细的图标,然后转到其父对象的下一个兄弟姐妹,然后从那里获取该兄弟姐妹文本。
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)
调整您的抓取效果以达到目标,然后查看是否有帮助!