如何使用具有非常大的列表的美丽汤python从像justdial这样的网站中提取数据?

时间:2015-06-26 12:43:01

标签: python beautifulsoup

我正在使用美丽的汤从justdial.com提取Ngo信息我能够获取数据。但问题是它只取得了最初的10个项目。当在他们的网站上手动滚动时,我能够获得大约324加元。我使用了以下代码

from bs4 import BeautifulSoup

import requests

#url to fetch
url="http://www.justdial.com/Bangalore/ngos"
req = requests.get(url)

#Get the data from the requested source
data=req.text

#use Beautiful Soup to get data from the website
soup=BeautifulSoup(data)

但这只返回9项。如何获得所有物品?

4 个答案:

答案 0 :(得分:1)

正如Rob所说,当您向下滚动时,该页面使用JavaScript加载更多NGO。使用请求获取html时不会发生这种情况。您有两种选择:

  1. 手动转到页面,尽可能向下滚动,然后查看页面的html源并抓取它。如果你需要提取数百页,那么就不能这样做。
  2. 深入了解页面来源,了解其中10个附加页面的位置。您可以使用开发人员工具(在网络选项卡下)在chrome中执行此操作。在那里,我为你做了,它正在使用这个网址:http://www.justdial.com/functions/ajxsearch.php?national_search=0&act=pagination&city=Bangalore&search=Ngos&where=&catid=232578&psearch=&prid=&page=4看看你是否能用它做点什么。

答案 1 :(得分:0)

这是因为,如果您查看正在发生的事情,网站会在您滚动时加载更多内容。如果你可以找到他们正在进行AJAX调用的地方(可能是在Javascript中),我建议模仿正在加载其他数据的调用。

这将带来额外的好处,让您直接获取数据,而无需与网页中间人打交道,您可能会获得尽可能多的数据。

答案 2 :(得分:0)

您可以检查这个jusr dail scraper,我已经编写了它,可以简单地更新URL和代码内部并运行代码以提取数据。

https://github.com/harsh4870/Justdail-scrapper

答案 3 :(得分:-1)