我们希望创建一个程序或脚本,用我们公司内部员工的名字,姓氏,公司和头衔搜索LinkedIn,并将搜索结果拉入文件或表格。
根据LinkedIn关键字,我可以生成搜索网址:
https://www.linkedin.com/search/results/index/?keywords=firstname%3Ajohn%20AND%20lastname%3Adoe%20AND%20company%3Amicrosoft%20AND%20title%3Aceo&origin=GLOBAL_SEARCH_HEADER
我需要从结果中提取或删除顶部网址。我可以在浏览器中使用我的帐户登录。
我不知道LinkedIn是否公开了API,或者我是否可以使用 curl 执行此操作,或者哪种语言最适合此...任何人都有一个简单的示例代码可以启动用?
答案 0 :(得分:1)
由于您需要在整个抓取过程中登录,因此抓取网站的最佳选择是使用Selenuim。同样可以通过Requests来实现,但Selenium是一个更好的选择。
对于抓取部分,您应该坚持使用BeautifulSoup。
Selenium需要一个webdriver来启动浏览器。为此,您有三个选择:
就个人而言,我总是更喜欢PhantomJS,因为它提供headless browsing,如果你想将你的脚本扩展到一个单独的网站等,这是理想的。
这是一个通过Selenium启动chrome浏览器的最小脚本:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import StaleElementReferenceException
from selenium.common.exceptions import NoSuchElementException
base_url = 'https://www.linkedin.com/search/results/index/?keywords=firstname%3Ajohn%20AND%20lastname%3Adoe%20AND%20company%3Amicrosoft%20AND%20title%3Aceo&origin=GLOBAL_SEARCH_HEADER'
chromedriver = os.path.dirname(os.path.realpath(__file__)) + "/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get(base_url)
# sign in and perform all your scraping
注意:我不认为LinkedIn公开了用于搜索其内容的API,因此您必须坚持我上面提到的内容。