使用以下网址:
我正在尝试抓取此处显示的表的结果。问题是,无论如何,搜索结果限制为每页25个,并且您可以看到-多页中有成千上万个结果。
我尝试将开始日期和结束日期更改为无效。
当我用漂亮的汤刮时,我只能刮擦结果的第1页,然后刮擦停止。在这85页的结果中,我想抓的是什么(在这种情况下)? (并且-我的代码成功,但仅从结果的第1页返回了抓取代码。)
这是我的代码:
blah = []
html = 'https://www.prosportstransactions.com/basketball/Search/SearchResults.php?Player=&Team=Celticss&PlayerMovementChkBx=yes&submit=Search&start=0'
webpage = requests.get(html)
content = webpage.content
soup = BeautifulSoup(content)
for item in soup.find_all('tr'):
for value in item.find_all('td'):
gm = value.text
blah.append(gm)
答案 0 :(得分:1)
在整个代码段上制作一个do循环,以抓取其中一个表,并将网址增加25。在下面的代码段中,我刚刚制作了一个计数器变量,该变量最初为零,每循环增加25。当对请求的响应不再有效时,该代码将中断循环,这意味着您遇到了错误或搜索结果的结尾。您可能会修改该语句以使其在404时中断,或者打印错误等。
下面的代码未经测试,仅是我概念的证明。
blah = []
url = 'https://www.prosportstransactions.com/basketball/Search/SearchResults.php?Player=&Team=Celticss&PlayerMovementChkBx=yes&submit=Search&start='
counter = 0
while True:
url += str(counter)
webpage = requests.get(url)
if webpage.status_code != 200:
break
content = webpage.content
soup = BeautifulSoup(content)
for item in soup.find_all('tr'):
for value in item.find_all('td'):
gm = value.text
blah.append(gm)
counter += 25