lxml 和请求抓取 javascript table
lxml and request scrape javascript table
此代码的目的是从 java 脚本网页中抓取 table。
页面=https://www.investing.com/economic-calendar/unemployment-rate-301
PS:我没有使用 selenium,因为它非常慢,我更喜欢 request 和 lxml
这是代码:
from lxml import html
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36'}
link = 'https://www.investing.com/economic-calendar/unemployment-rate-301'
url = link.strip()
page = requests.get(url, headers=headers)
tree = html.fromstring(page.content)
table = tree.xpath('//*[@id="eventTabDiv_history_0"]')
for table in table:
table = table.text
print(table)
问题是它没有打印任何东西 table 也没有错误
问题可能是 table 元素本身没有任何文本。要获取其子函数的文本,可以使用 text_content()
:
for table in table:
table = table.text_content()
print(table)
此代码的目的是从 java 脚本网页中抓取 table。
页面=https://www.investing.com/economic-calendar/unemployment-rate-301
PS:我没有使用 selenium,因为它非常慢,我更喜欢 request 和 lxml 这是代码:
from lxml import html
import requests
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36'}
link = 'https://www.investing.com/economic-calendar/unemployment-rate-301'
url = link.strip()
page = requests.get(url, headers=headers)
tree = html.fromstring(page.content)
table = tree.xpath('//*[@id="eventTabDiv_history_0"]')
for table in table:
table = table.text
print(table)
问题是它没有打印任何东西 table 也没有错误
问题可能是 table 元素本身没有任何文本。要获取其子函数的文本,可以使用 text_content()
:
for table in table:
table = table.text_content()
print(table)