无法使用beautifulSoup访问某些内容

时间:2017-07-12 19:46:26

标签: python parsing beautifulsoup bs4

我在访问此网页中的特定valut时遇到了一些麻烦(这是一个用于销售旧东西的法国网站)。 我试图获取其中特定项目的访问次数。这是链接:http://www.kijiji.ca/v-velo-de-route/laval-rive-nord/velo-de-route-time/1280774723

无论如何,这是我的代码:

from bs4 import BeautifulSoup
import lxml
import requests
from fake_useragent import UserAgent


ua = UserAgent()
header = {'user-agent' : ua.chrome}
kjj_page = requests.get("http://www.kijiji.ca/v-velo-de-route/laval-rive-nord/velo-de-route-time/1280774723", headers=header)


soup = BeautifulSoup(kjj_page.content, 'lxml')       # This take two parameters, the file we want to parse and
                                                     # the parser

content = soup.findAll("span", {"class" : "ad-visits"})
print(content)

问题是,在网站上你可以看到有83个访问点(屏幕中间是#34; Visites"法语),但在我的控制台上我可以'看到那个号码......为什么?我怎么能得到它?

2 个答案:

答案 0 :(得分:1)

在打开该网站时,如果您打开Chrome Develper工具(或类似工具),您会看到XHR对此地址http://www.kijiji.ca/j-vac-inc-get.json进行了调用。

如果您将网页ID作为GET参数传递,则会获得访问次数。 以下是该页面的示例:

import requests
from fake_useragent import UserAgent

URL = "http://www.kijiji.ca/v-velo-de-route/laval-rive-nord/velo-de-route-time/1280774723"
URL_ID = URL.split('/')[-1]

ua = UserAgent()
header = {'user-agent' : ua.chrome}
kjj_page = requests.get("http://www.kijiji.ca/j-vac-inc-get.json?adId=%s" % URL_ID, headers=header)

print (kjj_page.json()["numVisits"])

输出当前的访问次数:

  

85

答案 1 :(得分:0)

试试这个选择器:

content = soup.findAll("span", "ad-visits")

documentation page

上有更多示例
相关问题