0

xml ページhttp://www.10why.net/sitemap.xmlをクロールする必要があります。 これは、必要な URL の単なるテーブルです。

from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
import re

thename = "sitemap"

class ReviewSpider(BaseSpider):
    name = thename
    allowed_domains = ['10why.net']
    start_urls = ['http://www.10why.net/sitemap.xml']

    def parse(self, response):
        hxs = HtmlXPathSelector(response)

        content = hxs.select('//table[@cellpadding="5"]/tbody//a')

        print content
        for c in content:


            file = open('%s.txt' % thename, 'a')
            file.write("\n")
            file.write(c)
            file.close()

印刷されるコンテンツは [] (空のリスト) です。これは、サイト マップの xml ページではなく、通常の html ページでクロールできるようにするために使用します。私を助けてください。PS: 他の理由で自分でファイルを書きます。

4

1 に答える 1

1

これは、サーバーから送信された生の XML ではなく、ブラウザーが XML を表示するために使用している HTML を見ているためだと思います。指定された URL を見ると、次のような XML 構造が表示されます。

<urlset>
   <url>
      <loc>http://www.10why.net/20130321/bb-nuan/</loc>
      <lastmod>2013-03-21T01:51:31+00:00</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.2</priority>
   </url>
</urlset>

次のような XPath 式を使用することもできます。

//urlset/url/loc

サイト マップ内のすべての URL を取得します。

于 2013-08-08T01:58:04.303 に答える