Python 从Olx广告中抓取电话号码

Python 从Olx广告中抓取电话号码,python,web-scraping,python-requests,Python,Web Scraping,Python Requests,我正在尝试使用requests和beautifulsoup为olx网站()创建一个scraper。我对大多数数据没有任何问题,但电话号码是隐藏的(必须先单击它)。我已经尝试使用chrome inspect来查看手动单击“网络”选项卡时“网络”选项卡中发生了什么。 有一个包含此信息的ajax请求“?pt=5D1480FBAD0A1F2006E865BFDF7A6FB07F244B82E17AB0EA4C5EADDC4F9DA391B098E1926642564FFB781655D55BE270C6

我正在尝试使用requests和beautifulsoup为olx网站()创建一个scraper。我对大多数数据没有任何问题,但电话号码是隐藏的(必须先单击它)。我已经尝试使用chrome inspect来查看手动单击“网络”选项卡时“网络”选项卡中发生了什么。 有一个包含此信息的ajax请求“?pt=5D1480FBAD0A1F2006E865BFDF7A6FB07F244B82E17AB0EA4C5EADDC4F9DA391B098E1926642564FFB781655D55BE270C6913F752A08298F43B24C0169636B” 这是可在网站源中找到的phoneToken(每次页面加载时都会更改)。 我试图使用请求库发送这种请求,但得到了“000”的响应。 我可以使用Selenium获取电话号码,但加载速度太慢

问题是: 有办法绕过那些安全电话令牌吗? 或 如何加速Selenium在1-2秒内刮取电话号码

广告示例:

编辑: 实际上,现在作为回应,我收到了一条消息,我的IP地址被阻止了。(但仅使用请求,当我手动加载页面时,ip不会被阻止)。 不幸的是,我做了一些更改,无法复制代码,以得到“000”的响应。这是我现在代码的一部分

def scrape_phone(id):
    s = requests.Session()
    url = "https://www.olx.pl/{}".format(id)
    response = s.get(url, headers=headers)
    page_text = response.text
    # getting short id
    index_of_short_id = page_text.index("'id':'")
    short_id = page_text[index_of_short_id:index_of_short_id+11].split("'")[-1]
    # getting phone token
    index_of_token = page_text.index("phoneToken")
    phone_token = page_text[index_of_token+10:index_of_token+150].split("'")[1]
    url = "https://www.olx.pl/ajax/misc/contact/phone/{}".format(short_id)
    data = {
        'pt': phone_token
    }
    response = s.post(url, data=data, headers=headers)
    print(response.text)
    
scrape_phone(540006276)

您是否在请求中发送cookies?或者ajax响应是加密的,必须运行一些javascript来破译它?你能问一下添加当前代码并解释什么不起作用吗?是的,我想@Bober说的是正确的。尝试铬无头硒加速一点。