Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在xpath命令中使用python scrapy设置任意值以进行web抓取_Python_Xpath_Web Scraping_Scrapy - Fatal编程技术网

如何在xpath命令中使用python scrapy设置任意值以进行web抓取

如何在xpath命令中使用python scrapy设置任意值以进行web抓取,python,xpath,web-scraping,scrapy,Python,Xpath,Web Scraping,Scrapy,如何在python(scrapy)中定义xpath命令以接受代码中指定位置的任何数字。我已经尝试在该位置放置*或any() table = response.xpath('//*[@id="olnof_**here I want to accept any value**_altlinesodd"]/tr[1]/TD[1]/A[1]') 您可以尝试以下解决方法: '//*[starts-with(@id, "olnof_") and contains(@id, "_altlinesodd")]

如何在python(scrapy)中定义xpath命令以接受代码中指定位置的任何数字。我已经尝试在该位置放置
*
any()

table = response.xpath('//*[@id="olnof_**here I want to accept any value**_altlinesodd"]/tr[1]/TD[1]/A[1]')

您可以尝试以下解决方法:

'//*[starts-with(@id, "olnof_") and contains(@id, "_altlinesodd")]/tr[1]/TD[1]/A[1]'
以(@id,“\u altlinesodd”)结尾
在本例中效果更好,但Scrapy不支持
语法结尾,因此使用了
包含

您可以使用:


现在假设你的any和any一样,你可以试试这个。
x_path='/*[@id=“olnof{}\u altlinesodd”]/tr[1]/TD[1]/A[1]'
x_path.format(“将您的any放在这里,可以从rand函数中提取b或从其他地方提取值。”)
那么,
table=response.xpath(x_路径)
这将完成工作

table = response.xpath('//*[re:test(@id, "^olnof_.+_altlinesodd$")]/tr[1]/TD[1]/A[1]')