为什么我的网络抓取工具不受 Steam URL 变化的影响?
Why is my web scraper not affected by changes in the steam URL?
我构建了这个网络抓取工具来抓取商品名称和最低价格。它有效,但它只抓取了第一页(这很好,我正在努力)。但有趣的是,当我更改 url http://steamcommunity.com/market/search?q= to be http://steamcommunity.com/market/search?q=#p2(即项目第二页的 url)时,我得到完全相同的输出,即来自第一页。任何帮助,将不胜感激。
完整代码如下:
import urllib2
from bs4 import BeautifulSoup
page_num = 1
url = 'http://steamcommunity.com/market/search?q='
open_url = urllib2.urlopen(url).read()
market_page = BeautifulSoup(open_url)
for i in market_page('div', {'class' : 'market_listing_row market_recent_listing_row market_listing_searchresult'}):
item_name = i.find_all('span', {'class' : 'market_listing_item_name'})[0].get_text()
price = i.find_all('span')[1].get_text()
page_num += 1
print item_name + ' costs ' + price
您应该检查页面使用 Chrome 或 Firefox 进行的 REST 调用。看起来正确的端点和参数是这样的:
我构建了这个网络抓取工具来抓取商品名称和最低价格。它有效,但它只抓取了第一页(这很好,我正在努力)。但有趣的是,当我更改 url http://steamcommunity.com/market/search?q= to be http://steamcommunity.com/market/search?q=#p2(即项目第二页的 url)时,我得到完全相同的输出,即来自第一页。任何帮助,将不胜感激。
完整代码如下:
import urllib2
from bs4 import BeautifulSoup
page_num = 1
url = 'http://steamcommunity.com/market/search?q='
open_url = urllib2.urlopen(url).read()
market_page = BeautifulSoup(open_url)
for i in market_page('div', {'class' : 'market_listing_row market_recent_listing_row market_listing_searchresult'}):
item_name = i.find_all('span', {'class' : 'market_listing_item_name'})[0].get_text()
price = i.find_all('span')[1].get_text()
page_num += 1
print item_name + ' costs ' + price
您应该检查页面使用 Chrome 或 Firefox 进行的 REST 调用。看起来正确的端点和参数是这样的: