使用以下url:
我正在尝试抓取这里显示的表格的结果。问题是,不管怎样,搜索结果被限制在25个/页面,正如你所看到的--在多个页面上有数千个结果。
我已尝试更改开始日期和结束日期,但无济于事。
当我用漂亮的汤刮的时候,我只能刮掉第一页的结果,然后刮就停止了。我在抓取(在本例中)全部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)
发布于 2020-02-26 06:11:50
在抓取其中一个表的整个代码段中执行一个do循环,并将url递增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
https://stackoverflow.com/questions/60403887
复制相似问题