teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

タイトルの変更

2019/04/03 01:02

投稿

Ohtoro
Ohtoro

スコア36

title CHANGED
@@ -1,1 +1,1 @@
1
- PythonのScrapyのクローリング(スクレピング)でつまづます(汗)
1
+ Scrapy(スダー)でのfor文で何をキーにループをすればいいのかがわからない。
body CHANGED
File without changes

2

文法を修正

2019/04/03 01:02

投稿

Ohtoro
Ohtoro

スコア36

title CHANGED
File without changes
body CHANGED
@@ -45,19 +45,12 @@
45
45
  **↓↓ ここから先がどのように書いたら良いのかがわかりません。**
46
46
  **↓↓ 手が止まっている状態です、ご教授下さい。**
47
47
  ```ここに言語を入力
48
- for res in response.xpath('//*[@id="content"]/div/section/div'):
48
+ for jobs in response.css(''):
49
49
  item = PyjobItem()
50
-
51
- job['title'] = res.xpath('//*[@id="content"]/div/section/div/ol/li[1]/h2/span[1]/a').extract()
50
+ item['title'] = jobs.css('').extract_first()
52
- job['company'] = res.xpath('//*[@id="content"]/div/section/div/ol/li[1]/h2/span[1]/text()').extract()
51
+ item['company'] = jobs.css('').extract_first()
53
- job['location'] = res.xpath('//*[@id="content"]/div/section/div/ol/li/h2/span[2]/a').extract()
52
+ item['location'] = jobs.css('').extract_first()
54
53
  yield item
55
-
56
- next_page = response.css('li.next a::attr(href)').extract()
57
-
58
- if next_page is not None:
59
- next_page = response.urljoin(next_page)
60
- yield scrapy.Request(next_page, callback=self.parse)
61
54
  ```
62
55
 
63
56
  ・for文のループ処理をどうやって書けばいいのかが苦戦中。

1

文法修正

2019/04/02 16:52

投稿

Ohtoro
Ohtoro

スコア36

title CHANGED
File without changes
body CHANGED
@@ -60,14 +60,22 @@
60
60
  yield scrapy.Request(next_page, callback=self.parse)
61
61
  ```
62
62
 
63
- ・一番上のデータしか抽出できない。
64
- scrapyで次ジへ遷移しスクレイピングしたいが、き方がよくわからない。
63
+ for文プ処理をどうやってけばいのかが苦戦中
65
- ・「社名」を抽出する際、改行やスペースなどが入っていて、文字列だけを抽出する方法がわからない。
66
- ・調べれば調べるほどよくわからなくなる。
67
64
 
65
+ ・要は、何をキーにループをすればいいのかがわからない。
68
66
 
67
+ ・「NEXT」ページにもデータがあるので、それも最後まで取得したい。
69
68
 
69
+ ・「社名」を抽出する際、以下のような\nや\tなどが入っていて、文字列だけを抽出する方法がわからない。
70
70
 
71
+ ```ここに言語を入力
72
+ ['\n ',
73
+ '\n \n ',
74
+ '\n\t\t Stiftelsen Flowminder\n ']
75
+ ```
76
+
77
+
78
+
71
79
  ### 実現したいこと:
72
80
 
73
81
  例えば、
@@ -75,7 +83,16 @@
75
83
  に以下のように吐き出したいです。
76
84
 
77
85
  [
86
+ {
87
+ "title": "Senior Python Developer",
88
+ "company": "Stiftelsen Flowminder",
89
+ "location": "Southampton, Hampshire, United Kingdom"
90
+ },
91
+ {
78
- {"title": "Senior Software Engineer (BACKEND)", "company": "CB Insights", "location": "New York, New York, USA"},
92
+ "title": "Senior Software Engineer (BACKEND)",
93
+ "company": "CB Insights",
94
+ "location": "New York, New York, USA"
95
+ },
79
96
 
80
97
 
81
98