我正在尝试解析来自html页面的信息,如下所示:
第1栏|第2栏|第3栏......
这是我到目前为止的代码:
from bs4 import BeautifulSoup as BS
import urllib.request
html=urllib.request.urlopen(url)
soup=BS(html,"lxml")
但我似乎无法弄清楚我是如何提取的,比如该html页面中的第1列并将其放入python中的数据框中。
答案 0 :(得分:0)
我建议你去看熊猫。一旦你的html在内存中,你可以尝试
<div class="col-lg-4 col-sm-6 col-xs-12">
<div class="thumbnail">
<a href="https://farm1.staticflickr.com/665/23578574946_b6f90e1ca8_k.jpg" data-toggle="lightbox">
<img src="https://farm1.staticflickr.com/665/23578574946_b6f90e1ca8_k.jpg" class="img-fluid">
</a>
</div>
</div>
效果很好。
答案 1 :(得分:0)
您可以抓取表格数据,然后添加到数据框:
from bs4 import BeautifulSoup as soup
import urllib
import pandas as pd
page_data = str(urllib.urlopen('http://mlg.ucd.ie/modules/COMP30760/stocks/tlsa.html').read())
final_data = [i.text for i in soup(page_data, 'html.parser').find_all('td')]
last_data = [final_data[i:i+7] for i in range(0, len(final_data), 7)]
df = pd.DataFrame(last_data[1:], columns = last_data[0])
输出(样本)
Day Month Year Open High Low Close
0 02 01 2013 35 35.450001 34.709999 35.360001
1 03 01 2013 35.18 35.450001 34.75 34.77
2 04 01 2013 34.799999 34.799999 33.919998 34.400002
3 07 01 2013 34.799999 34.799999 33.900002 34.34
4 08 01 2013 34.5 34.5 33.110001 33.68
5 09 01 2013 34.009998 34.189999 33.400002 33.639999
6 10 01 2013 33.869999 33.990002 33.380001 33.529999
7 11 01 2013 34.040001 34.040001 32.110001 32.91
8 14 01 2013 33.080002 33.380001 32.849998 33.259998