我想刮手机号,但手机号只会在点击后显示,所以请您是否可以直接使用python刮手机号?我的代码刮手机号,但使用starr***。这是我想刮手机的链接,号码:https://hipages.com.au/connect/abcelectricservicespl/service/126298请引导我! 这是我的密码:
import requests
from bs4 import BeautifulSoup
def get_page(url):
response = requests.get(url)
if not response.ok:
print('server responded:', response.status_code)
else:
soup = BeautifulSoup(response.text, 'lxml')
return soup
def get_detail_data(soup):
try:
title = (soup.find('h1', class_="sc-AykKI",id=False).text)
except:
title = 'Empty Title'
print(title)
try:
contact_person = (soup.findAll('span', class_="Contact__Item-sc-1giw2l4-2 kBpGee",id=False)[0].text)
except:
contact_person = 'Empty Person'
print(contact_person)
try:
location = (soup.findAll('span', class_="Contact__Item-sc-1giw2l4-2 kBpGee",id=False)[1].text)
except:
location = 'Empty location'
print(location)
try:
cell = (soup.findAll('span', class_="Contact__Item-sc-1giw2l4-2 kBpGee",id=False)[2].text)
except:
cell = 'Empty Cell No'
print(cell)
try:
phone = (soup.findAll('span', class_="Contact__Item-sc-1giw2l4-2 kBpGee",id=False)[3].text)
except:
phone = 'Empty Phone No'
print(phone)
try:
Verify_ABN = (soup.find('p', class_="sc-AykKI").text)
except:
Verify_ABN = 'Empty Verify_ABN'
print(Verify_ABN)
try:
ABN = (soup.find('div', class_="box__Box-sc-1u3aqjl-0").find('a'))
except:
ABN = 'Empty ABN'
print(ABN)
def main():
#get data of detail page
url = "https://hipages.com.au/connect/abcelectricservicespl/service/126298"
#get_page(url)
get_detail_data(get_page(url))
if __name__ == '__main__':
main()
输出:
或者,如果要分析完整脚本:
另一个版本:
页面源中已存在电话号码。 PageSource中有一个脚本,以
window.__INITIAL_STATE__
开头,它包含一个对象,该对象具有针对多个提供商的数据,因此您可以从这里获取所有提供商的电话号码,或者简单地将此对象加载到json中,并根据store作为键,获取针对该存储的电话号码相关问题 更多 >
编程相关推荐