我试图从这个网站上抓取代理机构的电话号码:
列表视图 http://www.authoradvance.com/agencies/
局部视图 http://www.authoradvance.com/agencies/b-personal-management/
电话号码隐藏在详细信息页中。在
那么,有没有可能通过网站的网址,如上面的详细查看网址和抓取电话号码?在
我试图用这个代码:
from scrapy.item import Item, Field
class AgencyItem(Item):
Phone = Field()
from scrapy.contrib.spiders import CrawlSpider, Rule
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.selector import HtmlXPathSelector
from agentquery.items import AgencyItem
class AgencySpider(CrawlSpider):
name = "agency"
allowed_domains = ["authoradvance.com"]
start_urls = ["http://www.authoradvance.com/agencies/"]
rules = (Rule(SgmlLinkExtractor(allow=[r'agencies/*$']), callback='parse_item'),)
def parse_item(self, response):
hxs = HtmlXPathSelector(response)
sites = hxs.select("//div[@class='section-content']")
items = []
for site in sites:
item = AgencyItem()
item['Phone'] = site.select('div[@class="phone"]/text()').extract()
items.append(item)
return(items)
然后我就跑了“恶心的爬虫机构-o”项目.csv-t csv“的 结果爬网了0页。在
怎么了?提前感谢您的帮助!在
页面上只有一个链接满足您的regex(
agencies/*$
):它只是指向iteself的一个链接,它没有带有
^{pr2}$section-content
类的div:因此,循环不会迭代,
items
永远不会被追加。在所以把regex改成
/agencies/.+
相关问题 更多 >
编程相关推荐