1
lynda.comコースをスクラップし、その情報をcsvファイルに保存しようとしています。これは私がここでやろうとしていますどのように私のコード追加のリクエストの解析結果の解析
# -*- coding: utf-8 -*-
import scrapy
import itertools
class LyndadevSpider(scrapy.Spider):
name = 'lyndadev'
allowed_domains = ['lynda.com']
start_urls = ['https://www.lynda.com/Developer-training-tutorials']
def parse(self, response):
#print(response.url)
titles = response.xpath('//li[@role="presentation"]//h3/text()').extract()
descs = response.xpath('//li[@role="presentation"]//div[@class="meta-description hidden-xs dot-ellipsis dot-resize-update"]/text()').extract()
links = response.xpath('//li[@role="presentation"]/div/div/div[@class="col-xs-8 col-sm-9 card-meta-data"]/a/@href').extract()
for title, desc, link in itertools.izip(titles, descs, links):
#print link
categ = scrapy.Request(link, callback=self.parse2)
yield {'desc': link, 'category': categ}
def parse2(self, response):
#getting categories by storing the navigation info
item = response.xpath('//ol[@role="navigation"]').extract()
return item
であることは、私はチュートリアルのリストのタイトル、説明をつかみ、その後、URLに移動し、parse2でカテゴリをつかんだということです。
はしかし、私はこのような結果を得る:
category,desc
<GET https://www.lynda.com/SVN-Subversion-tutorials/SVN-Java-Developers/552873-2.html>,https://www.lynda.com/SVN-Subversion-tutorials/SVN-Java-Developers/552873-2.html
<GET https://www.lynda.com/Java-tutorials/WebSocket-Programming-Java-EE/574694-2.html>,https://www.lynda.com/Java-tutorials/WebSocket-Programming-Java-EE/574694-2.html
<GET https://www.lynda.com/GameMaker-tutorials/Building-Physics-Based-Platformer-GameMaker-Studio-Using-GML/598780-2.html>,https://www.lynda.com/GameMaker-tutorials/Building-Physics-Based-Platformer-GameMaker-Studio-Using-GML/598780-2.html
私は私が欲しい情報にアクセスするにはどうすればよいですか?
こんにちは:
は、このコードを試してみてください。答えをありがとう、任意のコースをクリックした場合。あなたは左上に表示されます –
あなたはブレッドクラムナビゲーションを意味しますか?私はあなたの仕様を反映する答えを編集しました - 最後のナビゲーション項目からテキストを抽出するようになりました。 –
ありがとうございます。とにかくそれを修正しました。あなたは命を救った人です。ところで、2段階のログインをする方法を知っていますか? –