Python lxml xpath не может получить текст - PullRequest
0 голосов
/ 30 октября 2019

Я хочу получить символ и компанию по этому URL-адресу "https://www.set.or.th/set/commonslookup.do?language=en&country=US&prefix=A" Однако он ничего не возвращает, и ответ [200]

print "hello from python 2"
from lxml import html
import requests
import csv
import pandas as pd

headers = {'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'}
page = requests.get('https://www.set.or.th/set/commonslookup.do?language=en&country=US&prefix=A', headers=headers)
tree = html.fromstring(page.content)
tree1 = tree.xpath('//td/text()')
tree2 = tree.xpath('//td/a/text()')
print tree1
print tree2

Как получить текст для всех символов и компании?

1 Ответ

0 голосов
/ 30 октября 2019

Все содержимое страницы загружается через jquery. Если вы посмотрите на содержание в своем ответе, то увидите, что существует не что иное, как оболочка для вызова javascript, которая динамически загружает содержимое страницы.

page.content
# returns:
b'<html style="height:100%"><head><META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"><meta name="format-detection"
content="telephone=no"><meta name="viewport" content="initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="IE=
edge,chrome=1"></head><body style="margin:0px;height:100%"><iframe id="main-iframe" src="/_Incapsula_Resource?SWUDNSAI=3
0&xinfo=0-25937873-0%200NNN%20RT%281572429155601%20933%29%20q%280%20-1%20-1%200%29%20r%280%20-1%29%20B12%284%2c315%2c0%2
9%20U5&incident_id=476000980067714022-125254320263005728&edet=12&cinfo=04000000&rpinfo=0" frameborder=0 width="100%" hei
ght="100%" marginheight="0px" marginwidth="0px">Request unsuccessful. Incapsula incident ID: 476000980067714022-12525432
0263005728</iframe></body></html>'

К сожалению, это означает, что вам нужно будетиспользуйте библиотеку, которая поддерживает контент, загруженный таким образом. Либо Selenium с PhantomJS, либо вы можете попробовать requests_html.

...