from bs4 import BeautifulSoup
import requests
s=requests.Session()
r=s.get('http://www.virginiaequestrian.com/main.cfm?action=greenpages&GPType=8')
soup=BeautifulSoup(r.text,'html5lib')
DataGrid=soup.find('tbody')
test=[]
for tr in DataGrid.find_all('tr')[:3]:
for td in tr.find_all('td'):
print td.string
嗨,我正在尝试解析这个网站(http://www.virginiaequestrian.com/main.cfm?action=greenpages&GPType=8)的html并获取表数据。我试图从结果中排除前三个表行,但由于某些原因,我无法让解析器执行此操作。这是我的第一次专业刮尝试,我完全不知道如何让这个工作。我猜这可能与我使用的html5lib解析器有关,但老实说,我不知道。有人能告诉我怎么才能让它工作吗?你知道吗
作为一个好的测试,从前三项中提取数据是非常有用的行。这个我有信心完成的查询将从这些以外的任何东西中提取。你知道吗
例如,表中的第一行是“马术网站”
只取前三个不忽略
[:3]
,它从列表中分割前三个元素:应该是
DataGrid.find_all('tr')[3:]
#除前三个元素外的所有元素当切片并使用两个不同的解析器输出时,上述
tbl.find_all("tr")
:如果你真的想要
more
的hrefs,那么你就应该这样做,为每个a
获取tr
标记,在你真正想要的行之前还有6个tr,所以你需要跳过6:输出:
要使用链接,只需在主url前面加上:
输出:
如果你打开第一个网站,你就会看到马术网站,也就是你想要的第一个数据。你知道吗
相关问题 更多 >
编程相关推荐