首先,我对这一切都很陌生,所以准备好一些我从各种来源复制/粘贴的代码。
我希望能够删除任何垃圾返回的html代码。我把所有东西都存储在MySQL中,没有任何问题,但我现在还不能做的是删除很多“<;td>;”和其他html标记。我最初只是使用/text().extract()运行,但它会随机遇到一个按如下方式格式化的单元格:
TEXT Text Text Text Text它没有一个模式可以让我在使用/文本与否之间做出选择,我正在寻找一个初学者能够实现的最简单的方法来消除所有这些。from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from scrapy.contrib.loader import XPathItemLoader
from scrapy.contrib.loader.processor import Join, MapCompose
import html2text
from scraper.items import LivingSocialDeal
class CFBDVRB(BaseSpider):
name = "cfbdvrb"
allowed_domains = ["url"]
start_urls = [
"url",
]
deals_list_xpath = '//table[@class="tbl data-table"]/tbody/tr'
item_fields = {
'title': './/td[1]',
'link': './/td[2]',
'location': './/td[3]',
'original_price': './/td[4]',
'price': './/td[5]',
}
def parse(self, response):
selector = HtmlXPathSelector(response)
for deal in selector.xpath(self.deals_list_xpath):
loader = XPathItemLoader(LivingSocialDeal(), selector=deal)
# define processors
loader.default_input_processor = MapCompose(unicode.strip)
loader.default_output_processor = Join()
# iterate over fields and add xpaths to the loader
for field, xpath in self.item_fields.iteritems():
loader.add_xpath(field, xpath)
converter = html2text.HTML2Text()
converter.ignore_links = True
yield loader.load_item()
converter=html2text是我最后一次尝试那样删除它,我不完全确定我是否正确实现了它,但它没有工作。
提前感谢你的帮助,如果我错过了一些简单的东西,我也很抱歉,快速搜索可以拉上来。