我没有问题刮它,甚至刮任何数量的网页,我定义,但它只显示前10个结果的每一页
def scrape_pages(page_num):
for page in range(1, page_num+1):
headers = {'User-Agent':
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36'}
url = "https://coinmarketcap.com/?page={}".format(page)
page_tree = requests.get(url, headers=headers)
pageSoup = BeautifulSoup(page_tree.content, 'html.parser')
print("Page {} Parsed successfully!".format(url))
1条答案
按热度按时间ybzsozfc1#
这是因为前十个结果在您返回的
HTML
中。但是,其余部分是由JavaScript
动态添加的,所以BeautifulSoup
不会看到这一点,因为它根本不存在。但是,您可以使用一个API来获取表数据(如果您喜欢,也可以用于所有页面)。
具体操作如下:
输出量:
编辑:要在页面上循环,您可能想尝试以下操作:
[:2]
添加到for loop
来限制这个例子,但是如果你想处理所有的页面,只需删除这个[:2]
,所以循环看起来像这样: