我是一个新的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 block ,如下所示: /image/dAjB6.png
我的问题是,这里出了什么问题是 xpath 地址还是网站在 html 上有某种层?
(请原谅我对一些描述的无知,例如:xpath的层或地址)
我的系统信息:
- Windows 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
关于python - 使用 Python + lxml (xpath) 从网站抓取/提取文本并打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50657708/