Python 带有表头数据的flask webscraper问题
我正在尝试制作一个网页垃圾程序来获取游戏标题信息。目前我正在从维基百科上的ps4游戏列表中删除。我这样做是因为我正在尝试学习如何将webscraper之类的脚本合并到flask项目中。我有它的工作相当好,但我不能得到数据。列名称列在这里,我希望这些添加到我生成的csv文件。我想,通过尝试定位Python 带有表头数据的flask webscraper问题,python,beautifulsoup,Python,Beautifulsoup,我正在尝试制作一个网页垃圾程序来获取游戏标题信息。目前我正在从维基百科上的ps4游戏列表中删除。我这样做是因为我正在尝试学习如何将webscraper之类的脚本合并到flask项目中。我有它的工作相当好,但我不能得到数据。列名称列在这里,我希望这些添加到我生成的csv文件。我想,通过尝试定位标签,我可以得到我需要的东西,但效果并不理想。这是我的最新尝试: import requests from bs4 import BeautifulSoup import csv class GameScr
标签,我可以得到我需要的东西,但效果并不理想。这是我的最新尝试:
import requests
from bs4 import BeautifulSoup
import csv
class GameScraper:
results = []
def fetch(self, url):
return requests.get(url)
def parse(self, html):
content = BeautifulSoup(html, 'lxml')
table = content.find(id="softwarelist")
rows = table.findAll('tr')
header = table.find('thead')
header_row = header.findAll('tr')
results = header_row.findAll('th')
for row in rows:
if len(row.findAll('td')):
self.results.append([data.text for data in row.findAll('td')])
def to_csv(self):
with open('ps4.csv', 'w') as csv_file:
writer = csv.writer(csv_file)
writer.writerows(self.results)
def run(self):
ps4_list = self.fetch('https://en.wikipedia.org/wiki/List_of_PlayStation_4_games')
self.parse(ps4_list.text)
self.to_csv()
if __name__ == '__main__':
scraper = GameScraper()
scraper.run()
我当前收到此错误:
AttributeError: 'NoneType' object has no attribute 'findAll'
在这一行:
header_row = header.findAll('tr')
看起来维基百科在你向他们发送请求时返回的页面与普通用户看到的页面不同。在您的程序接收的页面中,位于用户端头部的数据(如标题、流派、开发者、平台、发布日期)实际上只存储在
中的中,您是否正在尝试获取所有这些数据?在您的表中没有所谓的thead。您想要的信息在tbody
标记中,而不是thead
它在我想要的中,包含标题、流派、开发者、平台、发布日期。目前,我的脚本得到了我想要的实际游戏信息,只是没有得到标题信息。我希望csb有我刚刚在第一行列出的条款,这样你就知道游戏数据是什么