我编写了scrapy类,以便获得页面内容,如下所示:
#!/usr/bin/python
import html2text
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
class StockSpider(BaseSpider):
name = "stock_spider"
allowed_domains = ["www.hamshahrionline.ir"]
start_urls = ["http://www.hamshahrionline.ir/details/261730/Health/publichealth"]
def parse(self, response):
hxs = HtmlXPathSelector(response)
# sample = hxs.select("WhatShouldIputHere").extract()[AndHere]
converter = html2text.HTML2Text()
converter.ignore_links = True
print converter.handle(sample)
我的主要问题是我发表评论的状态。
如何设置路径并提取参数?
您能指导我做些例子吗?
谢谢
首先,您需要确定要从页面中获取哪些数据,定义一个Item
类和一组Field
。然后,为了用数据填充项目字段,您需要xpath
在parse()
Spider方法中使用表达式。
这是一个从正文中检索所有段落的示例(我想是所有新闻):
from scrapy.item import Item, Field
from scrapy.spider import Spider
from scrapy.selector import Selector
class MyItem(Item):
content = Field()
class StockSpider(Spider):
name = "stock_spider"
allowed_domains = ["www.hamshahrionline.ir"]
start_urls = ["http://www.hamshahrionline.ir/details/261730/Health/publichealth"]
def parse(self, response):
sel = Selector(response)
paragraphs = sel.xpath("//div[@class='newsBodyCont']/p/text()").extract()
for p in paragraphs:
item = MyItem()
item['content'] = p
yield item
请注意,Selector
由于HtmlXPathSelector
不推荐使用我使用的类。另外,由于相同的原因,我使用xpath()
method而不是select()
。
另外,请注意,您最好Item
在单独的python脚本中提取定义,以遵循Scrapy项目结构。
希望能有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句