隐藏行拖网html表的问题

时间:2020-02-24 13:27:24

标签: python html web-scraping

对于Web抓取我还比较陌生,我真的不知道为什么这不起作用,我认为这与我要抓取的表中的隐藏行有关。

我正在尝试通过for循环将相当简单的表提取到pandas数据框中。但是,当我尝试使用find_all('tr')提取行时,最终得到的是一个完全空的集。

这是我的代码:

url = 'https://pjammcycling.com/home;mode=search;sort=worldRank;view=table;asc=true;f1=France;dsply=100'

html = requests.get(url)
soup = BeautifulSoup(html.text, 'lxml')
table_body = soup.find('tbody')
rows = table_body.find_all('tr')

当我打印(行)时,我得到:

[]

我要使用的for循环是:

labels = []
data = []

for row in rows:
    labels.append(str(row.find_all('td')[0].text))
    data.append(str(row.find_all('td')[1].text))

cols = {'Field': labels, 'Data': data}
df = pd.DataFrame(cols)

任何帮助将不胜感激,因为我整个早晨一直将头撞在墙上,试图使它起作用:( 我的Google搜索都没有为我清除此问题

提前谢谢!

1 个答案:

答案 0 :(得分:0)

检索到您的肢体为空。在浏览器中,它由javascript填充。这是原始html的摘录:

<tbody _ngcontent-sc18=""><!----></tbody>

它和BeautifulSoup一样没有用。也许您可以尝试:https://pythonprogramming.net/javascript-dynamic-scraping-parsing-beautiful-soup-tutorial/

相关问题