使用 Python + lxml (xpath) 到网站的 scrape/extract 文本并打印
Using Python + lxml (xpath) to scrape/extract text from a website and print it
我是新 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 来提取 "tree.xpath" 地址,以获取我愿意打印的特定 html 数据使用 lxml + python.
的简单代码
除了每次输出都是一个空括号,例如:
[] 或者是一些无意义的 html 块 如下所示:
https://i.stack.imgur.com/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
试试这个代码,它应该可以工作
from lxml import html
import requests
page = requests.get('http://www.germaneveryday.com/')
tree = html.fromstring(page.content)
word = tree.xpath('//*[@id="main"]/div[1]/div[2]/div/h1/a/text()')
print (word)
问题如上所说:Rakesh、Davide Fiocco 和 Devratna
"Use list index to access the required element and .text to print its 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)
现在可以使用了!
我是新 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 来提取 "tree.xpath" 地址,以获取我愿意打印的特定 html 数据使用 lxml + python.
的简单代码除了每次输出都是一个空括号,例如: [] 或者是一些无意义的 html 块 如下所示: https://i.stack.imgur.com/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
试试这个代码,它应该可以工作
from lxml import html
import requests
page = requests.get('http://www.germaneveryday.com/')
tree = html.fromstring(page.content)
word = tree.xpath('//*[@id="main"]/div[1]/div[2]/div/h1/a/text()')
print (word)
问题如上所说:Rakesh、Davide Fiocco 和 Devratna
"Use list index to access the required element and .text to print its 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)
现在可以使用了!