繁体   English   中英

从网站抓取表格数据

[英]Scrape Table Data from Website

我正在尝试使用BeautifulSoup4和Python从网站上抓取表格数据,然后使用结果创建一个Excel文档。 到目前为止,我有这个:

import urllib2
from bs4 import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://opl.tmhp.com/ProviderManager/SearchResults.aspx?TPI=&OfficeHrs=4&ProgType=STAR&UCCIndicator=No+Preference&Cnty=&NPI=&Srvs=6&Age=All&Gndr=B&SortBy=Distance&ZipCd=78552&SrvsOfrd=0&SpecCd=0&Name=&CntySrvd=0&Plan=H3&WvrProg=0&SubSpecCd=0&AcptPnt=Y&Rad=200&LangCd=99').read())

for row in soup('table', {'class' : 'spad'})[0].tbody('tr'):
    tds = row('td')
    print tds[0].string, tds[1].string

但它无法显示数据。

有任何想法吗?

首先,该类是StandardResultsGrid ,而不是spad

其次,你不需要tbody的事情。 只需使用:

for row in soup('table', {'class' : 'StandardResultsGrid'})[0]('tr'):

还要注意,因为在原来的页面标题行包含在tbody出于某种原因,你必须跳过第一行,所以

for row in soup('table', {'class' : 'StandardResultsGrid'})[0]('tr')[1:]

并请注意,某些单元格中包含table ,因此您必须仔细解析td的内容。

试图从网站上抓取一张桌子<div tags< div><div id="text_translate"><p> 我正在尝试刮这张桌子<a href="https://momentranks.com/topshot/account/mariodustice?limit=250" rel="nofollow noreferrer">https://momentranks.com/topshot/account/mariodustice?limit=250</a></p><p> 我试过这个:</p><pre> import requests from bs4 import BeautifulSoup url = 'https://momentranks.com/topshot/account/mariodustice?limit=250' page = requests.get(url) soup = BeautifulSoup(page.content, 'lxml') table = soup.find_all('table', attrs={'class':'Table_tr__1JI4P'})</pre><p> 但它返回一个空列表。 有人可以就如何解决这个问题提供建议吗?</p></div></div>

[英]Trying to scrape a table from a website with <div tags

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM