python - 使用 Python + lxml (xpath) 从网站抓取/提取文本并打印
问题描述
我是一个新的 Python 学习者;差不多 3 周大。
我正在尝试使用 python 自动化一些日常任务。在这里,我试图抓取一个名为“ https://www.germaneveryday.com/ ”的网站,它确实每天都会生成一个新的德语单词以及一个句子示例。所以我的计划是自动化这个而不是每天访问该站点。
我从这里遵循了一个在线教程:http: //docs.python-guide.org/en/latest/scenarios/scrape/
这是代码:
from lxml import html
import requests
page = requests.get('https://www.germaneveryday.com/')
tree = html.fromstring(page.content)
Word = tree.xpath('//*[@id="main"]/div[1]/div[2]/div/h1/a')
print (Word)
我确实检查了网站上的每日单词,并使用右键单击复制 xpath 以提取特定 html 数据的“tree.xpath”地址,我愿意使用 lxml + python 在我的简单代码中打印出来。
除了每次输出都是一个空括号,例如:[] 或者它是一些无意义的 html 块如下所示: https ://i.stack.imgur.com/dAjB6.png
我的问题是,这里有什么问题是 xpath 地址还是网站在 html 上有某种层?
(请原谅我的无知,使用一些描述,例如:层或 xpath 的地址)
我的系统信息:
- 视窗 7 (x86)
- Python 版本为 (v3.6.5)
- 网络浏览器是 Chrome 66.0.3359.181
解决方案
使用列表索引访问所需元素并.text
打印其文本。
前任:
from lxml import html
import requests
page = requests.get('https://www.germaneveryday.com/')
tree = html.fromstring(page.content)
Word = tree.xpath('//*[@id="main"]/div[1]/div[2]/div/h1/a')[0].text
print (Word)
输出:
heimlich