我正在使用BeautifulSoup从HTML文件中解析一些JSON。 基本上,我用LinkedIn的搜索结果获取所有员工的个人资料。 然而,有些公司的员工数量不超过10人。 这是我的密码
import requests, json
from bs4 import BeautifulSoup
s = requests.session()
def get_csrf_tokens():
url = "https://www.linkedin.com/"
req = s.get(url).text
csrf_token = req.split('name="csrfToken" value=')[1].split('" id="')[0]
login_csrf_token = req.split('name="loginCsrfParam" value="')[1].split('" id="')[0]
return csrf_token, login_csrf_token
def login(username, password):
url = "https://www.linkedin.com/uas/login-submit"
csrfToken, loginCsrfParam = get_csrf_tokens()
data = {
'session_key': username,
'session_password': password,
'csrfToken': csrfToken,
'loginCsrfParam': loginCsrfParam
}
req = s.post(url, data=data)
print "success"
login(USERNAME PASSWORD)
def get_all_json(company_link):
r=s.get(company_link)
html= r.content
soup=BeautifulSoup(html)
html_file= open("html_file.html", 'w')
html_file.write(html)
html_file.close()
Json_stuff=soup.find('code', id="voltron_srp_main-content")
print Json_stuff
return remove_tags(Json_stuff)
def remove_tags(p):
p=str(p)
return p[62: -10]
def list_of_employes():
jsons=get_all_json('https://www.linkedin.com/vsearch/p?f_CC=2409087')
print jsons
loaded_json=json.loads(jsons.replace(r'\u002d', '-'))
employes=loaded_json['content']['page']['voltron_unified_search_json']['search']['results']
return employes
def get_employee_link(employes):
profiles=[]
for employee in employes:
print employee['person']['link_nprofile_view_3']
profiles.append(employee['person']['link_nprofile_view_3'])
return profiles , len(profiles)
print get_employee_link(list_of_employes())
它不适用于现有的链接;但是它适用于此公司搜索:https://www.linkedin.com/vsearch/p?f_CC=3003796
编辑: 我确信这是get_all_json()函数的错误。如果 您看一下,对于拥有10名以上员工的公司,它不能正确获取JSON。在
这是因为结果是分页的。您需要在以下位置获取json数据中定义的所有页面:
^{pr2}$pages
是一个列表,对于公司2409087
它是:这基本上是一个URL列表,您需要通过它来获取数据。在
以下是您需要执行的操作(为登录编辑代码):
它为https://www.linkedin.com/vsearch/p?f_CC=2409087打印
25
这正是您在浏览器中看到的内容。在结果是默认的beauthoulsoup解析器出了问题。 我把它改成了html5lib:
安装在控制台中
并更改第一次创建soup对象时选择的解析器类型。在
^{pr2}$这在BeautifulSoup docs here中有记录
相关问题 更多 >
编程相关推荐