2017-10-31 7 views
0

多くのXpathの回答がありますが、CSSの回答はありません。私は必要なすべてのテキストを抽出することに成功しましたが、それは完全にラップされていますか?私は、thisサイトからいくつかの役割の説明を引き出しています。ScrapyでCSSを使用してタグなしのテキストをすべて抽出 - 失敗

私が使用していたコードはScrapyのチュートリアルから構成されている - 私は役割ごとにサイト外のすべてのジョブ関連のテキストを抽出したい:

def parse(self, response): 
    for href in response.css('.mask-on-hover + a::attr(href)'): 
     yield response.follow(href, self.parse_author) 

def parse_author(self, response): 
    def extract_with_css(query): 

     return response.css(query).extract() 

    yield { 
     'role': extract_with_css('h1::text'), 
     'literature': extract_with_css('h3 span.info::text'), 
     'date-posted': extract_with_css('h3 span#ctl00_spListed.info.listed::text'), 
     'role-description': extract_with_css('#ctl00_regionContent_lblJobDescription span , strong::text'),} 
は、特定のページのための私の結果は、すべてのテキストが含まれて

htmlタグや、span、style、font-sizeなどの要素も含まれます。

CSSを使用してサイトの外観順にクリーンテキストを取得するにはどうすればよいですか?理想的には、段落スタイルを維持し、それを最終的にExcel/CSVの1つのセルに配信したいと考えています。

ありがとうございました!

答えて

0

CSSセレクタは、あなたがw3libからremove_tagsメソッドを使用することができますしたい正確に何ですが、私はそれはあなたの場合には必要だとは思わない、これを試してみてください場合:

'role-description': extract_with_css('#ctl00_regionContent_lblJobDescription span *::text') 
+0

*働いていました!なぜ説明できますか?唯一のことは、タイトルと段落の間にスペースがないことです。 – TBR272

+0

はい、xpathに '/ text()'と尋ねると、スパンの内部ノードにそのテキストが尋ねられます – Wilfredo

+0

ありがとう - 私は適用しようとしましたこれは別のウェブサイトでも同じコーディング構造であり、役割の説明のコードを使用して[link](https://www.bdo.co.uk/en-gb/careers)のために働いていません: '' role_description ':extract_with_css(' p span、#com \ .peopleclick \ .cp \ .formdata \ .JPM_ESSENTIALFUNCTIONS_label、#com \ .peopleclick \ .cp \ .formdata \ .JPM_DESCRIPTION_label * :: text ')' – TBR272

関連する問題