【发布时间】:2015-05-12 05:45:33
【问题描述】:
帮我解决一下scrapy。我的代码产生了输出,但是它没有打印正确的方式。
我也在另一个 for 循环中尝试过,但不会给出正确的结果,无论如何,如果你发现那里缺少什么..请给我打电话
代码:
import scrapy
class YelpScrapy(scrapy.Spider):
name = 'yelp'
start_urls = ["http://www.yelp.com/search?find_desc=Pet+Grooming+Services&find_loc=Starnberg%2C+Bayern",]
def print_link(self, link):
return link
def parse(self, response):
website = scrapy.Selector(response)
items = []
for obj in website.xpath("//div[@class='main-attributes']"):
item = YelpItem()
# Getting name
item['name'] = obj.xpath("//div[@class='media-story']//h3//a/text()").extract()
# Getting addresss
item['address'] = obj.xpath("//div[@class='secondary-attributes']//address").extract()
items.append(item)
return items
结果输出如下:
'name': [u'Tierschutzverein Starnberg u. Umgebung',
u'M\xfcmmelpension',
u'Hundesportverein Starnberg e. V.',
u'Bellness Hundesalon',
u'California Dog Spa',
u'Gassi Germering',
u'Hundesalon Tanaka Beauty & Spa',
u'Hundesalon Popp',
u'Neuhauser Hundeladen',
u'TheraFelis Katja R\xfcssel'],
{'address': [u'<address>\n Franziskusweg 34<br>82319 Starnberg<br>Germany\n </address>',
u'<address>\n St.-Michael-Str. 19<br>82319 Starnberg<br>Germany\n </address>',
u'<address>\n J\xe4gersbrunner Str. 1<br>82319 Starnberg<br>Germany\n </address>',
u'<address>\n Baierbrunner Str. 1<br>81379 Munich<br>Germany\n </address>',
u'<address>\n Geigenbergerstr. 51<br>81477 Solln<br>Germany\n </address>',
u'<address>\n Donnersbergerstr. 30<br>80634 Munich<br>Germany\n </address>',
u'<address>\n Els\xe4sser Stra\xdfe 24<br>81667 Munich<br>Germany\n </address>',
u'<address>\n Schluderstr. 40<br>80634 Munich<br>Germany\n </address>',
u'<address>\n Fliederstr. 23<br>82131 Gauting<br>Germany\n </address>'],
为什么它没有像 {{name, address}{name, address}} 这样的顺序出现。
【问题讨论】:
标签: python web-scraping scrapy scrapy-spider