Python 从Olx广告中抓取电话号码
我正在尝试使用requests和beautifulsoup为olx网站()创建一个scraper。我对大多数数据没有任何问题,但电话号码是隐藏的(必须先单击它)。我已经尝试使用chrome inspect来查看手动单击“网络”选项卡时“网络”选项卡中发生了什么。 有一个包含此信息的ajax请求“?pt=5D1480FBAD0A1F2006E865BFDF7A6FB07F244B82E17AB0EA4C5EADDC4F9DA391B098E1926642564FFB781655D55BE270C6913F752A08298F43B24C0169636B” 这是可在网站源中找到的phoneToken(每次页面加载时都会更改)。 我试图使用请求库发送这种请求,但得到了“000”的响应。 我可以使用Selenium获取电话号码,但加载速度太慢 问题是: 有办法绕过那些安全电话令牌吗? 或 如何加速Selenium在1-2秒内刮取电话号码 广告示例: 编辑: 实际上,现在作为回应,我收到了一条消息,我的IP地址被阻止了。(但仅使用请求,当我手动加载页面时,ip不会被阻止)。 不幸的是,我做了一些更改,无法复制代码,以得到“000”的响应。这是我现在代码的一部分Python 从Olx广告中抓取电话号码,python,web-scraping,python-requests,Python,Web Scraping,Python Requests,我正在尝试使用requests和beautifulsoup为olx网站()创建一个scraper。我对大多数数据没有任何问题,但电话号码是隐藏的(必须先单击它)。我已经尝试使用chrome inspect来查看手动单击“网络”选项卡时“网络”选项卡中发生了什么。 有一个包含此信息的ajax请求“?pt=5D1480FBAD0A1F2006E865BFDF7A6FB07F244B82E17AB0EA4C5EADDC4F9DA391B098E1926642564FFB781655D55BE270C6
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说的是正确的。尝试铬无头硒加速一点。