如何使用在xpath中具有标签信息的变量来提取

时间:2018-06-28 06:31:32

标签: python xpath scrapy

我正在编写一个抓取代码,该代码采用url,这些要抓取的数据从CSV文件存储在这些标签中。我将该标签分配给一个临时变量,例如z(具有h1),av(具有标题),an(具有td)等。当我在xpath中使用该变量时,它不会从该标签中提取任何内容。谁能帮我 ?

import pandas as pd
import requests
from scrapy.http import TextResponse

x=pd.read_csv(r'C:\Users\ndewan\Desktop\pattern-swage.csv', encoding="utf-8")
x=x.replace('<','',regex=True).replace('>','',regex=True)

url=str(x.iloc[0,0]) 
r = requests.get(url)
response = TextResponse(r.url, body=r.text, encoding='utf-8')
z=x.iloc[0,1]
s=x.iloc[0,2]
an=x.iloc[0,3]
av=x.iloc[0,4]
part=response.xpath('//av//text()').extract()
print(part)
print(url)
print(z)

1 个答案:

答案 0 :(得分:1)

由于您正在使用变量,因此应使用$表示它们,并以关键字参数per the docs的形式提供它们的值。

part=response.xpath('//$av//text()', av = av).extract()

或者,如果愿意,可以使用字符串格式。

part=response.xpath(f'//{av}//text()').extract()