2017-02-16 11 views
0

Я пытаюсь получить промышленность компании со страницы поиска связанного дюйма Я получаю xpath формы инструментов разработчика Chrome, но он возвращает пустые скобки. Что, по-видимому, здесь?lxml не находит xpath, заданный Chrome?

from lxml import html 
import requests 

page = requests.get('https://www.linkedin.com/search/results/companies/?keywords=cisco.com') 
tree = html.fromstring(page.content) 

industry = tree.xpath('//*[@id="ember3734"]/div/div[1]/p[1]') 

print(industry) 

ответ

1

Я сделал сценарий с селеном и phantomjs, потому что на сайте используется много javascript.

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

import lxml.html 
import re 
from selenium import webdriver 
from time import sleep 
from selenium.webdriver import DesiredCapabilities 
from pprint import pprint 

desired_capabilities = DesiredCapabilities.PHANTOMJS.copy() 
desired_capabilities['phantomjs.page.customHeaders.User-Agent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) ' \ 
                    'AppleWebKit/537.36 (KHTML, like Gecko) ' \ 
                    'Chrome/39.0.2171.95 Safari/537.36' 
driver = webdriver.PhantomJS(desired_capabilities=desired_capabilities) 

username = '[email protected]' 
password = 'password' 


# driver = webdriver.PhantomJS() 
driver.set_window_size(1120, 550) 
driver.get("https://www.linkedin.com") 

driver.find_element_by_id('login-password').send_keys(password) 
driver.find_element_by_id('login-email').send_keys(username) 
driver.find_element_by_id("login-submit").click() 
driver.get("https://www.linkedin.com/search/results/companies/?keywords=cisco.com") 
sleep(3) 
html = driver.page_source 
root = lxml.html.fromstring(html) 

reg = re.compile('ember-view\">\s+<h3\s+class=\"search\-result__title\s+Sans\-17px\-black\-85\%\-semibold-dense\">(.*?)<\/h3>') 
names = reg.findall(html) 

pprint(names) 

driver.quit() 

enter image description here

+0

Спасибо вам большое! Могу ли я использовать какой-либо драйвер, или он должен быть PhantomJS? – opamp

+0

Я думаю, что Phantomjs лучше, но это личное мнение. У вас будет тот же результат с firefox или google chrome. Но я думаю, что фантомы легче. – wu4m4n

+0

@opamp вы можете использовать этот https://gist.github.com/Wu4m4n/597367d32e443b9fe120f47d78d56bce для установки phantomjs – wu4m4n

0

Я думаю, страница создана с помощью JavaScript. Поскольку запросы загружают страницу без выполнения JavaScript, вы получаете только основную страницу/шаблон, а не данные, которые вы ожидаете.

Попробуйте «просмотреть исходную страницу» под Chrome для подтверждения.

+0

Спасибо за ваш комментарий. Я пытаюсь немного, когда я нахожусь на своем mac. Итак, как я могу потянуть за данные, которые мне нужны в этом случае? – opamp

Смежные вопросы