这是我试图从中获取数据的示例网页. http://www.makospearguns.com/product-p/mcffgb.htm
xpath取自chrome开发工具,firefox中的firepath也能找到它,但是使用lxml它只返回'text'的空列表.
from lxml import html
import requests
site_url = 'http://www.makospearguns.com/product-p/mcffgb.htm'
xpath = '//*[@id="v65-product-parent"]/tbody/tr[2]/td[2]/table[1]/tbody/tr/td/table/tbody/tr[2]/td[2]/table/tbody/tr[1]/td[1]/div/table/tbody/tr/td/font/div/b/span/text()'
page = requests.get(site_url)
tree = html.fromstring(page.text)
text = tree.xpath(xpath)
Run Code Online (Sandbox Code Playgroud)
用.打印出树文本
print(tree.text_content().encode('utf-8'))
Run Code Online (Sandbox Code Playgroud)
显示数据存在,但似乎xpath无法找到它.有什么我想念的吗?我尝试过的大多数其他网站使用lxml和从chrome dev工具中获取的xpath都可以正常工作,但是我找到了一些空列表.
我希望能够从用户或文件中传入文本来过滤熊猫,这似乎查询是处理它的最佳方式。但是,我有一个日期时间索引,似乎无法找到使用 timedeltas 的方法。我知道我可以用 > 或 < 来过滤日期
query_string = 'index < datetime.datetime(2020, 2, 20, 11, 8, 19, 615268)'
df.query(queryString)
Run Code Online (Sandbox Code Playgroud)
和
date = datetime.datetime.now()
query_string = 'index < @date'
df.query(queryString)
Run Code Online (Sandbox Code Playgroud)
我想要做的是获取相对日期范围,例如获取条目的最后 10 秒
date = datetime.now()
query_string = 'index > @date - datetime.timedelta(seconds=10)'
df.query(query_string)
Run Code Online (Sandbox Code Playgroud)
这失败了,我似乎无法找到一种方法来执行诸如过滤与时间戳相关的任何内容之类的操作。有没有其他方法可以格式化它,以便我可以使用 df.query() 从日期中添加/减去时间?