StackOverflow,
我是一名寻求帮助的大学生。我正在与一个小组合作,建立一个mysql数据库,该数据库最终将在ER图中代表所有北美视频游戏。我正试图从链接中的列表中获取所有标题:https://gamefaqs.gamespot.com/pc/category/999-all?region=1
共有745页,我正试图获取所有的视频游戏标题,并将它们放入一个单独的xml文档或我可以轻松管理的东西中,以便稍后导入数据库。
如果有人能指引我朝着正确的方向前进,我将不胜感激!!!我在ubuntu上安装了运行beautifulsoup所需的所有模块和应用程序,但如果有更好的方法来获取信息,我也会尝试这种方式。
我正在运行最新版本的ubuntu,我正在使用安装了pip3的python3。
我目前拥有的代码是:
import requests
from bs4 import BeautifulSoup
from websockets import headers
URL = 'https://gamefaqs.gamespot.com/pc/category/999-all?region=1'
headers = {
'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/50.0.2661.102 Safari/537.36'}
page = requests.get(URL, headers=headers)
soup = BeautifulSoup(page.content, 'html.parser')
results = soup.find('table', attrs={'class': 'results'})
gameNames = results.find_all('td', class_="rtitle")
for name in gameNames:
title = name.text
print(title)
谢谢你,
Martin Scurlock
要将标题保存到文本文件,可以使用以下示例:
import requests
from bs4 import BeautifulSoup
url = 'https://gamefaqs.gamespot.com/pc/category/999-all'
params = {
'page': 0,
'region': 1
}
headers = {'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0'}
with open('data.txt', 'w') as f_out:
for page in range(0, 746):
print('Page {}...'.format(page))
params['page'] = page
soup = BeautifulSoup(requests.get(url, params=params, headers=headers).content, 'html.parser')
for title in soup.select('td.rtitle'):
print(title.text, file=f_out)
这会将所有标题保存到data.txt
:
_dive
_OUR_:_Defense
_space_train
-Color ball-
-Earth - Wind - Fire-
-KLAUS-
-lily of the hollow-
-sora-
-SPROUT-
...and so on.