我需要抓取xml页面http://www.10why.net/sitemap.xml 这只是我想要的网址表
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()
打印的内容是[](空列表) 我用来能够在普通的html页面而不是站点地图xml页面上抓取东西。请帮我。 PS:我出于其他原因自己写文件。
答案 0 :(得分:1)
我猜这是因为您正在查看浏览器用于显示 XML的HTML而不是来自服务器的原始XML。当我查看给定的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
获取站点地图中的所有网址。