- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是新手,我正在尝试从 Linkedin 上的每个公司页面自动提取详细信息。
我正在修改我找到的一段代码,它不会超出 requests.get 的进度,并且我的输出立即默认为重试。当我启用 header 作为参数时会发生这种情况。当我忽略它时,我实际上得到了一个 <999> 响应。
关于如何在这里取得进展的任何想法?我该如何解决 999 错误,或者如果程序立即默认重试并添加 header ,我如何理解出了什么问题。
from lxml import html
import csv, os, json
import requests
from time import sleep
import certifi
import urllib3
urllib3.disable_warnings()
def linkedin_companies_parser(url):
for i in range(5):
try:
print("looking at the headers")
headers = {
"accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"accept-encoding" : "gzip, deflate, sdch, br",
"accept-language" : "en-US,en;q=0.8,ms;q=0.6",
"user-agent" : " Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
print ("Fetching :",url)
response = requests.get(url, headers = headers, verify=False)
print (response)
formatted_response = response.content.replace('<!--', '').replace('-->', '')
print (formatted_response)
doc = html.fromstring(formatted_response)
print ("we have come here")
datafrom_xpath = doc.xpath('//code[@id="stream-promo-top-bar-embed-id-content"]//text()')
content_about = doc.xpath('//code[@id="stream-about-section-embed-id-content"]')
if not content_about:
content_about = doc.xpath('//code[@id="stream-footer-embed-id-content"]')
if content_about:
pass
# json_text = content_about[0].html_content().replace('<code id="stream-footer-embed-id-content"><!--','').replace('<code id="stream-about-section-embed-id-content"><!--','').replace('--></code>','')
if datafrom_xpath:
try:
json_formatted_data = json.loads(datafrom_xpath[0])
company_name = json_formatted_data['companyName'] if 'companyName' in json_formatted_data.keys() else None
size = json_formatted_data['size'] if 'size' in json_formatted_data.keys() else None
industry = json_formatted_data['industry'] if 'industry' in json_formatted_data.keys() else None
description = json_formatted_data['description'] if 'description' in json_formatted_data.keys() else None
follower_count = json_formatted_data['followerCount'] if 'followerCount' in json_formatted_data.keys() else None
year_founded = json_formatted_data['yearFounded'] if 'yearFounded' in json_formatted_data.keys() else None
website = json_formatted_data['website'] if 'website' in json_formatted_data.keys() else None
type = json_formatted_data['companyType'] if 'companyType' in json_formatted_data.keys() else None
specialities = json_formatted_data['specialties'] if 'specialties' in json_formatted_data.keys() else None
if "headquarters" in json_formatted_data.keys():
city = json_formatted_data["headquarters"]['city'] if 'city' in json_formatted_data["headquarters"].keys() else None
country = json_formatted_data["headquarters"]['country'] if 'country' in json_formatted_data['headquarters'].keys() else None
state = json_formatted_data["headquarters"]['state'] if 'state' in json_formatted_data['headquarters'].keys() else None
street1 = json_formatted_data["headquarters"]['street1'] if 'street1' in json_formatted_data['headquarters'].keys() else None
street2 = json_formatted_data["headquarters"]['street2'] if 'street2' in json_formatted_data['headquarters'].keys() else None
zip = json_formatted_data["headquarters"]['zip'] if 'zip' in json_formatted_data['headquarters'].keys() else None
street = street1 + ', ' + street2
else:
city = None
country = None
state = None
street1 = None
street2 = None
street = None
zip = None
data = {
'company_name': company_name,
'size': size,
'industry': industry,
'description': description,
'follower_count': follower_count,
'founded': year_founded,
'website': website,
'type': type,
'specialities': specialities,
'city': city,
'country': country,
'state': state,
'street': street,
'zip': zip,
'url': url
}
return data
except:
print ("cant parse page"), url
# Retry in case of captcha or login page redirection
if len(response.content) < 2000 or "trk=login_reg_redirect" in url:
if response.status_code == 404:
print ("linkedin page not found")
else:
raise ValueError('redirecting to login page or captcha found')
except :
print ("retrying :"),url
def readurls():
companyurls = ['https://www.linkedin.com/company/tata-consultancy-services']
extracted_data = []
for url in companyurls:
extracted_data.append(linkedin_companies_parser(url))
f = open('data.json', 'w')
json.dump(extracted_data, f, indent=4)
if __name__ == "__main__":
readurls()
最佳答案
状态码 999
从 Linkedin 发送的通常表示由于机器人事件或其他一些安全原因而拒绝访问。
最好通过在 headless 模式下使用 Chrome 或 Firefox 并爬取页面来模拟实际用户。它将消除手动设置 cookie 或传递 header 的需要,从而节省大量时间。
您可以使用 Selenium 使用 python 来自动化浏览器导航和抓取。
PS:确保您没有从 AWS 或其他流行的托管 ip 运行程序,因为这些 ip 范围被 Linkedin 阻止用于未经身份验证的 session 。
关于python - 使用python(在mac上)在Linkedin上抓取公司列表-默认为重试或<999>错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47552417/
创建我们的产品 LinkedIn 应用程序的开发人员通过 developer.linkedin.com 在他的个人 LinkedIn 帐户下添加了它。我们想将此应用程序移至我们公司的 LinkedIn
我正在尝试使用linkedin API 来显示我从第一天开始发布的个人资料的提要。帖子包括媒体、图像、视频等。我想知道是否有任何可用的 API,我可以在其中传递一些参数并获取我的linkedin 个人
我的应用程序从 LinkedIn 获取用户信息,但我找不到从 LinkedIn 获取某人性别的方法。 是否可以? LinkedIn 甚至有性别字段吗? 最佳答案 不。检查这个; https://dev
我很难在 LinkedIn 上获得分享。我正在尝试通过 LinkedIn API V2 发布 LinkedIn 共享,每次我发出发布请求时,我都会收到来自服务器的请求超时(状态 504)答复。这是我的
LinkedIn 的 API 返回以下值: [creationTimestamp] => 1407247548000 它看起来类似于 UNIX 时间戳,但末尾有三个“额外”零。这是什么格式,我该如何解
我正在尝试将从 ugcPosts API 获取组织帖子的现有代码迁移到 Posts API 的新版本调用(版本 202210),但我遇到了获取文章缩略图的问题。我从 Posts API 获得的响应不包
标题几乎说明了一切。有什么方法可以访问 LinkedIn 上大学页面的提要/更新吗? 在他们的开发者网站上唯一提到的大学是他们的 Alumni 小部件。 最佳答案 一句话:没有。 对于 API 的所有
您知道是否可以为 LinkedIn 平台构建应用程序? 最佳答案 是的,他们在 http://developer.linkedin.com/index.jspa 有 API ,允许访问个人资料、连接、
在 LinkedIn 的 API 使用条款 (https://developer.linkedin.com/legal/api-terms-of-use) 的第 2.3 节中,他们提到开发人员最多可以
作为公司页面的管理员,我如何通过 LinkedIn api 访问该公司的帖子 我被要求成为我公司资料的管理员。我创建了一个应用程序并将我的公司映射到该应用程序。但奇怪的是我刚刚获得了该应用程序的三个权
如何为我的网站提取或获取 LinkedIn 推荐?是否有任何插件或 PHP 脚本? 最佳答案 您可以使用 LinkedIn API 提取建议。 ,特别是 Profile API .粗略的步骤是: 创建
我正在为公司建立外部网站,我想展示我们公司的 LinkedIn 个人资料 最近更新 在我们的网站内。目前,当我访问我们公司的 LinkedIn 个人资料时,我可以看到这些最近的更新,这些更新也可供公共
articles API 的 LinkedIn 文档表明我可以通过做一个特定的文章的内容等 GET https://api.linkedin.com/v2/originalArticles/{orig
我想按日期范围获取视频分析。 我关注了视频分析 API, https://learn.microsoft.com/en-us/linkedin/marketing/integrations/commu
我想在我的网站中添加添加个人资料按钮以进行认证,以便用户可以将其添加到他们链接的个人资料中。 为此,我正在使用 任何人都可以帮助这里如何自动归档文件?意味着我想从我的一端发送证书名称、链接、许可证。
当图像通过 LinkedIn API v2 共享到个人资料(而非公司)时,它会显示为好像被裁剪过的一样: 但是,当我在 www.linkedin.com 上上传并分享同一张图片到我的个人资料时,它不显
当图像通过 LinkedIn API v2 共享到个人资料(而非公司)时,它会显示为好像被裁剪过的一样: 但是,当我在 www.linkedin.com 上上传并分享同一张图片到我的个人资料时,它不显
我正在使用 LinkedIn Owin Middleare,今天早上开始遇到问题,现在已将其复制到以下错误: POST https://www.linkedin.com/uas/oauth2/acce
我在我的网站上使用 LinkedIn 分享按钮,我使用相同的脚本将页面分享到 LinkedIn。但是,某些页面是成功的。一些页面失败。这是错误信息 Error while processing rou
有没有一种方法可以使用 LinkedIn API 提取公司洞察信息?我有一个高级帐户,并在 LinkedIn 开发者平台上创建了一个应用程序。我似乎找不到获取公司数据的方法,例如员 worker 数(
我是一名优秀的程序员,十分优秀!