我是新手。
我有一张桌子,
<tr>
<td>name</td> <td>age</td> <td><a href='link to marks'>marks</a></td>
</tr>
<tr>
<td>name</td> <td>age</td> <td><a href='link to marks'>marks</a></td>
</tr>
<tr>
<td>name</td> <td>age</td> <td><a href='link to marks'>marks</a></td>
</tr>....
具有标记的页面上有一个包含标记的<h1 class='marks'>
。
我正在循环tr并创建一个item对象,
item ['name'] ='td [1]中的名称
item ['age'] ='td [2]中的名称
现在,我需要转到标记链接并获取标记并将其设置为item ['marks']
请帮助我解决这个问题。
答案 0 :(得分:2)
您可以将yield
请求与meta
属性一起使用:
def parse(self, response):
for row in response.xpath('//tr'):
item = YourItem()
item["name"] = row.xpath('./td[1]/text()').get()
item["age"] = row.xpath('./td[2]/text()').get()
marks_url = row.xpath('./td[3]/a/@href').get()
yield scrapy.Request(
url=marks_url,
meta={"item": item},
callback=self.parse_marks,
)
def parse_marks(self, response):
item = response.meta["item"]
item["marks] = response.xpath('//your/marks/selector').getall()
yield item