Python 我怎样才能从scrapy那里得到正确的回应?

Python 我怎样才能从scrapy那里得到正确的回应?,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我正在尝试从这个公司注册中删除一些搜索结果,但是当我尝试删除公司名称时,我的结果似乎没有正确返回,这就像公司名称项根据搜索关键字被拆分为两个html项一样 有没有办法把这些联系在一起?这是我的蜘蛛 import scrapy class QuotesSpider(scrapy.Spider): name = 'gov2' start_urls = ['https://beta.companieshouse.gov.uk/search/companies?q=a'] def parse(se

我正在尝试从这个公司注册中删除一些搜索结果,但是当我尝试删除公司名称时,我的结果似乎没有正确返回,这就像公司名称项根据搜索关键字被拆分为两个html项一样

有没有办法把这些联系在一起?这是我的蜘蛛

import scrapy

class QuotesSpider(scrapy.Spider):

name = 'gov2'
start_urls = ['https://beta.companieshouse.gov.uk/search/companies?q=a']

def parse(self, response):

for i in response.css('ul.results-list'):
  yield {
      'company_name': i.css('li.type-company h3 a::text').extract(),
      'address': i.css('li.type-company p::text').extract(),
  }
我的结果正如你所看到的,它缺少了一些部分


希望你们中的任何人都能看到发生了什么。。谢谢大家!

如我所见,您希望获取
a
p
标记中的所有文本,并且在该标记中有许多
标记

尝试此方法并通过
regex
删除不必要的空格:

import scrapy
import re

class QuotesSpider(scrapy.Spider):

    name = 'gov2'
    start_urls = ['https://beta.companieshouse.gov.uk/search/companies?q=a']

    def parse(self, response):

      for i in response.css('ul.results-list'):
         yield {
          'company_name': re.sub('\s+',' ',''.join(i.css('li.type-company h3 a ::text').extract())),
          'address': re.sub('\s+',' ',''.join(i.css('li.type-company p ::text').extract())),
      }

如我所见,您希望获取
a
p
标记中的所有文本,并且在该标记中有许多
标记

尝试此方法并通过
regex
删除不必要的空格:

import scrapy
import re

class QuotesSpider(scrapy.Spider):

    name = 'gov2'
    start_urls = ['https://beta.companieshouse.gov.uk/search/companies?q=a']

    def parse(self, response):

      for i in response.css('ul.results-list'):
         yield {
          'company_name': re.sub('\s+',' ',''.join(i.css('li.type-company h3 a ::text').extract())),
          'address': re.sub('\s+',' ',''.join(i.css('li.type-company p ::text').extract())),
      }

使用正则表达式,只需修改代码以获得更好的输出

import re
import scrapy


class QuotesSpider(scrapy.Spider):
  name = 'gov2'
  start_urls = ['https://beta.companieshouse.gov.uk/search/companies?q=a']

    def parse(self, response):
      for i in response.css('.type-company'):
        yield {
            'company_name': re.sub('\s+', ' ', ''.join(i.css('h3 a ::text').extract())),
            'address': re.sub('\s+', ' ', ''.join(i.css('p ::text').extract())),
        }

使用正则表达式,只需修改代码以获得更好的输出

import re
import scrapy


class QuotesSpider(scrapy.Spider):
  name = 'gov2'
  start_urls = ['https://beta.companieshouse.gov.uk/search/companies?q=a']

    def parse(self, response):
      for i in response.css('.type-company'):
        yield {
            'company_name': re.sub('\s+', ' ', ''.join(i.css('h3 a ::text').extract())),
            'address': re.sub('\s+', ' ', ''.join(i.css('p ::text').extract())),
        }

非常感谢,这就是我要找的!我再看看正则表达式!太棒了,哈哈!非常感谢,这就是我要找的!我再看看正则表达式!太棒了,哈哈!谢谢,输出看起来很好。谢谢,输出看起来很好