【发布时间】:2017-11-22 08:05:14
【问题描述】:
我正在从这个 URL 的表格中抓取一些公开的零售数据:https://502data.com/retailers
我的目标是在 python 中为每一列创建一个列表,例如一个“Name_list”,其中包含 Web 表的该列中的所有条目,一个“County_list”等等。
这是我开始使用抓取的代码:
r = requests.get(url_to_scrape)
soup = BeautifulSoup(r.text, 'html.parser')
all_text = soup.get_text()
在我看来,我的 all_text 变量可能不是必需的。看起来必须有一种比我目前意识到的更巧妙的方法来做到这一点。例如:
all_text[7200:8000]
以上产出:
u', function($scope, $filter) {\n $scope.retailers = [{"licensenumber":"414876","name":"MAIN STREET MARIJUANA","city":"VANCOUVER","county":"CLARK","year":2017,"month":5,"sales":41170232.357500,"tax":14971101.020000,"recentSales":1374866.000000,"recentTax":508700.000000,"monthName":"May"}, ...
我可以看到,在 $scope.retailers = 之后,我以一种易于解析的方式存储了我想要存储的所有信息。
我只是对 Beautiful Soup 不够熟悉,无法知道循环该表的最佳命令,使用 soup 或 all_text 变量,并提取 Web 表的每一行中的数据。
寻找针对此问题的特定解决方案以及针对初学者的任何一般 BeautifulSoup 建议。
【问题讨论】:
标签: python web-scraping beautifulsoup