Python 2.7 如何在Python Scrapy中从子url获取数据
我是个新手 我有一张像Python 2.7 如何在Python Scrapy中从子url获取数据,python-2.7,scrapy,Python 2.7,Scrapy,我是个新手 我有一张像 <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 mar
<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>....
姓名年龄
姓名年龄
姓名年龄
....
有标记的页面有一个包含标记的
。
我正在循环tr并创建一个item对象,
项目['name']='td[1]中的名称'
项目['age']='td[2]中的名称'
现在,我需要转到marks链接,获取标记并将其设置为item,item['marks']
请帮我解决这个问题。您可以使用
属性为的
请求:
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
您可以使用带有meta
属性的yield
请求:
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
您可以使用请求的meta
属性将项目传递给对新请求的响应。您可以使用请求的meta
属性将项目传递给对新请求的响应。感谢您的回复,我那时是新来的。我要找的是发出一个inline_请求并获得marks元素。我得到了它。我没有想到你提到的这种方法,它非常简单。谢谢你的回复,我那时是新来的。我要找的是发出一个inline_请求并获得marks元素。我得到了它。我没有想到你提到的这种方法,它非常简单。多谢各位