使用此抓取工具可以正确抓取数据,但问题是将其导出到csv。默认的- o filname.csv
不会以正确的顺序粘贴数据。需要一些指导。item ['name']应该在第一列中,而item ['link']应该在第二栏中。这是代码。
# -*- coding: utf-8 -*-
import scrapy
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
import re
from ..items import WebscItem
class YuSpider(CrawlSpider):
name = 'yu'
allowed_domains = ['farfeshplus.com',
'wintv.live']
start_urls = ['https://www.farfeshplus.com/Video.asp?ZoneID=297']
rules = (
Rule(LinkExtractor(restrict_xpaths='//td[@class="text6"]'), callback='parse_item', follow=True),
)
def parse_item(self, response):
items = WebscItem()
for url in response.xpath('//html'):
items['name'] = url.xpath('//h1/div/text()').extract()
yield items
frames = url.xpath('//iframe[@width="750"]/@src').extract_first()
yield scrapy.Request(url=frames, callback=self.parse_frame)
def parse_frame(self, response):
items = WebscItem()
URL = response.xpath('//body/script').extract_first()
mp4 = re.compile(r"(?<=mp4:\s\[\')(.*)\'\]")
link = mp4.findall(URL)[0]
items['link'] = link
yield items
答案 0 :(得分:2)
您需要使用
settings.py
中的FEED_EXPORT_FIELDS
答案 1 :(得分:0)
如果要将数据导出到csv,则可以使用Pandas。
首先,您应该使用自己的Pandas-Dataframe,然后可以将此数据帧导出到csv:
来自https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html
df = pd.DataFrame({'name': ['Raphael', 'Donatello'],
'mask': ['red', 'purple'],
'weapon': ['sai', 'bo staff']})
df.to_csv()
我不确定这是否是您要找的