使用Selenium进行网页抓取网站 - 如何'NOT'下载Excel文件



我正在尝试使用Selenium抓取一个网站。https://media.japanmetaldaily.com/market/list/

我只想抓取少数金属的数据,并将其附加在一个excel文件中,然而,在这个网站上,数据实际上并不在网页上。当我点击href时,它会直接将数据下载为excel文件。禁止从href获取数据源。

<a href="https://media.japanmetaldaily.com/data/KS10001.xls"onclick=";pageTracker_trackEvent('market_list','download','異形棒鋼_直送_SD295_19ミリ');"gt;

我可以下载多个excel文件,然后对它们进行操作,但这完全违背了网络抓取的概念。在这种情况下,有没有一种方法可以查看数据,然后将其写入数据帧?非常感谢您的帮助/指导。

您需要的工具有漂亮的汤和请求库。

向网站请求获取html。然后用漂亮的汤,列出excel电子表格的链接列表。

然后循环浏览链接并使用请求库获取它们。XLS使用XML,所以您也可以使用漂亮的汤来刮取电子表格。

这应该是所需要的所有步骤。

试试这个代码:

from io import BytesIO
import urllib
def load_workbook_from_url(url):
file = urllib.request.urlopen(url).read()
return load_workbook(filename = BytesIO(file),data_only = True)

wb=load_workbook_from_url("URL")

#get worksheets name in each sheet together in a dictionary
worksheets_tables ={}
for name in wb.sheetnames:
worksheets_tables[name]=[]
if bool(wb[name].tables.keys()):
for tables in wb[name].tables.keys():        
worksheets_tables[name].append(tables)
else:
continue

相关内容

  • 没有找到相关文章

最新更新