有没有一种方法来获取在检查HTML时显示“ $ 0”元素的类?

时间:2019-08-23 01:50:28

标签: python scrapy

我是新手,我正在尝试从此网站“ https://www.doogal.co.uk/UKPostcodes.php?Search=AB”中抓取邮政编码。尝试为具有类“ $ 0”的td标签创建变量时卡住了。

我尝试了以下操作:

  1. 试图使用CSS选择器
  2. 尝试使用XPath
  3. 使用外壳检查我是否能够同时获取到它们的数据。
None

在Scrapy Shell中使用XPath:

def parse(self, response):

    code = UkPostcodeItem()

    sample_codes = response.xpath('//td[@class="$0"]')

    for codes in sample_codes:
       postcodes = codes.xpath('//td/a/text()').extract()

       code['post'] = postcodes

       yield code

在Scrapy Shell中使用CSS选择器:

>>> response.xpath("//td/a/text()").extract()
['AB1 0AA', 'AB1 0AB', 'AB1 0AD', 'AB1 0AE', 'AB1 0AF', 'AB1 0AG', 'AB1 0AJ', 'AB1 0AL', 'AB1 0AN', 'AB1 0AP', 'AB1 0AQ', 'AB1 0AR', 'AB1 0AS', 'AB1 0AT', 'AB1 0AX', 'AB1 0BA', 'AB1 0BB', 'AB1 0BD', 'AB1 0BE', 'AB1 0BJ', 'AB1 0BL', 'AB1 0BN', 'AB1 0BP', 'AB1 0BQ', 'AB1 0BR', 'AB1 0BS', 'AB1 0BT', 'AB1 0BX', 

2 个答案:

答案 0 :(得分:0)

尝试 //tr[@class='hover']/td[1]/a 尽管我很困惑,但是您的邮政编码与示例代码有什么区别?你想做什么?只需使用在外壳程序中有效的xpaths

答案 1 :(得分:0)

我能够在质量检查自动化领域的同事的帮助下解决此问题。他能够帮助我确定需要什么。 而是这样:

sample_codes = response.xpath('// td [@class =“ $ 0”]')

我能够通过使用CSS选择器并通过以下代码对此进行解决:

sample_codes = response.css('table.postalcodes')

如果是xpath:

sample_codes = response.xpath('// table [@postalcodes]')

因此,通过指出td的来源,就可以创建一个变量。