我必須在CAT1 & ACT2執行相同的操作連接兩個查詢字符串response.xpath,我有沒有誰給兩個查詢字符串傳遞到相同的XPath提取或兩者的查詢字符串相結合?如何使用scrapy
cat1 = response.xpath("//*[@id='linkControl']")
cat2=response.xpath("//*[@id='form1']/div[2]/div[2]/div[2]/div/div[*]/a")
我必須在CAT1 & ACT2執行相同的操作連接兩個查詢字符串response.xpath,我有沒有誰給兩個查詢字符串傳遞到相同的XPath提取或兩者的查詢字符串相結合?如何使用scrapy
cat1 = response.xpath("//*[@id='linkControl']")
cat2=response.xpath("//*[@id='form1']/div[2]/div[2]/div[2]/div/div[*]/a")
的XPath具有union operator(|
),你可以使用:
xpath1 = "//*[@id='linkControl']"
xpath2 = "//*[@id='form1']/div[2]/div[2]/div[2]/div/div[*]/a"
result = response.xpath(xpath1 + " | " + xpath2)
是的,它的工作! –
當我在Firebug測試工作正常,但在scrapy代碼只提取對應於xpath1。 有什麼建議? –
我建議你使用CSS選擇器來代替的XPath。
cat1 = response.xpath("#linkControl")
cat2=response.xpath("#form1 div::nth-child(2) div::nth-child(2) div::nth-child(2) div div a")
並結合兩者的使用,
(commma)
cat1 = response.xpath("#linkControl, #form1 div::nth-child(2) div::nth-child(2) div::nth-child(2) div div a")
cat2=response.xpath("#linkControl, #form1 div::nth-child(2) div::nth-child(2) div::nth-child(2) div div a")
您可以使用或運算符 '|'在正則表達式 – stamaimer
發佈HTML代碼 –
@stamaimer我應該艾克這個使用? response.xpath( 「// * [@ id中= '連接控制']」 |「// * [@ id中= 'Form1中']/DIV [2]/DIV [2]/DIV [2]/DIV /格[*]/a「) –