私はテーブルを掃除しようとしていますが、テーブルはCSSクラス "table"に属していて、そのテーブルにはtrがたくさんあり、trにはそれぞれ3個、最初にtdがあり、2番目にtdは3番目ですtd(もし存在すれば電話番号の場合)それぞれの "tr"から名前、アドレス、電話が必要ですが、何らかの理由でセレクタを 'td :: text'(各trの中のすべてのtdsのテキスト)名前、住所、電話はので、私は、XPathを使用して、アドレスの名前第二tdのための第一のTDのためとあれば、これを行う別途ガーベジの値を与えるPython Scraping
必要
NAME_SELECTOR = '//tr/td[1]/text()'
ADDRESS_SELECTOR = '//tr/td[2]/text()'
PHONE = '//tr/td[3]/text()'
yield {
'name': np.xpath(NAME_SELECTOR).extract_first(),
'address': np.xpath(ADDRESS_SELECTOR).extract_first(),
'phone': np.xpath(PHONE).extract_first(),
}
が、このグラム
電話番号の3番目のTDを存在しますこのようなごみの値なぜこのゴミ値ですか? (私は練習のためにそれを選ぶ理由thatsの)それはそれはだ、ここ
は、XPathの先頭にコード全体try:
import scrapy
except ImportError:
print "\nERROR IMPORTING THE NECESSARY LIBRARIES\n"
class NameSpider(scrapy.Spider):
name = 'name spider'
start_urls = ['http://www.locatefamily.com/Street-Lists/Australia/index-1.html']
def parse(self, response):
SET_SELECTOR = 'table.table tr'
for np in response.css(SET_SELECTOR):
NAME_SELECTOR = '//tr/td[1]/text()'
ADDRESS_SELECTOR = '//tr/td[2]/text()'
PHONE = '//tr/td[3]/text()'
yield {
'name': np.xpath(NAME_SELECTOR).extract_first(),
'address': np.xpath(ADDRESS_SELECTOR).extract_first(),
'phone': np.xpath(PHONE).extract_first(),
}
はあなたに –
非常に感謝しかし、私はこの」.//td[1]/textようにそれを書かなければなりませんでした何らかの理由で何も返さなかったのです。 –
私は参照しています。もし 'td'が' tr'の直接の子であれば 'td [1]'、 'td [2]'、 'td [3]' '' .// 'がなくても... – har07