【发布时间】:2018-10-26 07:38:22
【问题描述】:
我正在尝试使用 Scrapy 构建一个抓取工具,但我正在努力返回所需的文本。任何帮助将不胜感激。
这是我的代码:
import scrapy
from scrapy.spiders import Request
from scrapy.linkextractors import LinkExtractor
from scrapy.http import HtmlResponse
import re
from urllib import *
BASE_URL = 'http://murderpedia.org/'
PROTOCOL = 'https:'
这是我的物品类别
class CornFlakeItem(scrapy.Item):
name = scrapy.Field()
bio = scrapy.Field()
images = scrapy.Field()
link = scrapy.Field()
image_urls = scrapy.Field()
bio_image = scrapy.Field()
image_paths = scrapy.Field()
classification = scrapy.Field()
characteristics = scrapy.Field()
number_of_victims = scrapy.Field()
date_of_murders = scrapy.Field()
date_of_birth = scrapy.Field()
victims_profile = scrapy.Field()
method_of_murder = scrapy.Field()
location = scrapy.Field()
status = scrapy.Field()
这是我的生物课:
class CornFlakeBio(scrapy.Spider):
name = 'corn-flake-killers'
start_urls = ['http://murderpedia.org/male.A/index.A.htm']
这是我的解析函数:
def parse(self, response):
table=
response.xpath('//td[contains(font//font/text(),
"Victims")]/../..')
urls = table.xpath('//a/@href').extract()
for url in urls:
if (url.startswith('mailto:')):
yield None
else:
yield Request(response.urljoin(url), self.parse_person)
这是我的解析人功能:
def parse_person(self, response):
table = response.xpath('//*[@id="table4"]')
for row in table.xpath('//tbody'):
text = {
'Classification' :
row.xpath('//tr[3]/td/style/text()').extract_first(),
'Characteristics':
row.xpath('//tr[4]/td/style/text()').extract_first(),
'Number of Victims' :
row.xpath('//tr[5]/td/style/text()').extract_first(),
'Date of Murders':
row.xpath('//tr[6]/td/style/text()').extract_first(),
'Date of Birth':
row.xpath('//tr[7]/td/style/text()').extract_first(),
'Victims Profile':
row.xpath('//tr[8]/td/style/text()').extract_first(),
'Method of Murder':
row.xpath('//tr[9]/td/style/text()').extract_first(),
'Location' :
row.xpath('//tr[10]/td/style/text()').extract_first(),
'Status' :
row.xpath('//tr[11]/td/style/text()').extract_first()}
text = ''.join(text)
print(text)[:10]
我感觉我的问题在于每一行的 xpath,但也许不是? ...
这里的任何帮助将不胜感激。
以下是我更新的日志文件中的亮点:
【问题讨论】:
-
你得到什么错误/输出?
-
@AlphaTested 感谢您的回复。我在上面添加了日志文件
标签: python web-scraping scrapy