1
div内にあるスパン内のURLを検索しようとしています。div内のスパン内のURLを検索するにはどうすればよいですか?
この場合、私が後にしているクラス "company_url"とのリンクです。
<div class="links standard">
<span class="link">
<a href="https://twitter.com/abacus" class="twitter_url icon_link fontello-twitter" rel="nofollow" target="_blank"></a>
</span>
<span class="link">
<a href="http://www.facebook.com/abacuslabs" class="facebook_url icon_link fontello-facebook" rel="nofollow" target="_blank"></a>
</span>
<span class="link">
<a href="https://www.linkedin.com/company/abacus-labs" class="linkedin_url icon_link fontello-linkedin" rel="nofollow" target="_blank"></a>
</span>
<span class="link">
<a href="http://blog.abacus.com/" class="blog_url icon_link fontello-rss" rel="nofollow" target="_blank"></a>
</span>
<span class="link">
<a href="http://abacus.com" class="company_url" rel="nofollow" target="_blank">abacus.com</a>
</span>
</div>
は、私は、ページ内のdivとのdiv内のリンクを見つけるために私のXPathをテストしてみました。だから私は彼らが正しいと確信しています(私はhttp://www.freeformatter.com/xpath-tester.html#ad-outputを使用しました)。
しかし、私がコードを実行すると、何も取得されません。私は間違って何をしていますか?
from scrapy import Spider
from scrapy.selector import Selector
import datetime
from saas.items import StartupItem
class StackSpider(Spider):
name = "abacus"
allowed_domains = ["angel.co"]
start_urls = [
"https://angel.co/abacus",
]
def parse(self, response):
questions = Selector(response).xpath('//div[contains(@class, "links standard")]')
for question in questions:
item = StartupItem()
item['startupurl'] = question.xpath('/span[@class="link"]/a[@class="company_url"]/@href').extract()[0]
item['source'] = 'angel.co'
item['datetime'] = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
yield item
これらのXPathは動作しますが、Scrapyはまだデータをダウンロードしてくださいdoesntの。いくつかのグーグルを行った後(そして、別のサイトでそれをテストしてScrapyコードが良いことを証明した後)、私はAngel.coがボットに擦り傷をつけることを許さないという結論に向かっています。あなたの助けをありがとう! – user1287245
私のノートブックに戻るときに私はサイトを見ます –
@ user1287245、編集を参照してください。 settings.pyにユーザエージェントを追加する必要があります –