Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 未在终端上打印的元素_Python_Web Scraping_Scrapy - Fatal编程技术网

Python 未在终端上打印的元素

Python 未在终端上打印的元素,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,我正在尝试使用Scrapy()刮取此页。 我跟踪了每个链接,但我只得到了正确的电话。其他两个元素“名称”和“电子邮件”打印不正确。对于名称它打印“无”,对于“电子邮件”它只在@符号之前打印。我认为我没有使用正确的xpath,但在Chrome中,它表明xpath实际上是我试图针对的元素。我正在使用“Anaconda虚拟环境”。 请帮我做这个。 代码如下: # -*- coding: utf-8 -*- import scrapy import logging class Dgoodyman16S

我正在尝试使用
Scrapy
()刮取此页。 我跟踪了每个链接,但我只得到了正确的电话。其他两个元素
“名称”
“电子邮件”
打印不正确。对于
名称
它打印
“无”
,对于
“电子邮件”
它只在
@
符号之前打印。我认为我没有使用正确的
xpath
,但在Chrome中,它表明
xpath
实际上是我试图针对的元素。我正在使用
“Anaconda虚拟环境”
。 请帮我做这个。 代码如下:

# -*- coding: utf-8 -*-
import scrapy
import logging

class Dgoodyman16Spider(scrapy.Spider):
    name = 'dgoodyman16'
    allowed_domains = ['www.medicregister.com']
    start_urls = ['https://www.medicregister.com/USA/list/suppliers.asp']

    def parse(self, response):
        all_lists = response.xpath('//a[@class="TopicHeaderSupplier"]')
        for lists in all_lists:
            title = lists.xpath('.//text()').get()
            links = lists.xpath('.//@href').get()


            yield response.follow(url=links, callback=self.parse_lists)

    def parse_lists(self, response):
        # contact name xpath: (//div[@class="vcard"]/b)[1]
        # contact phone xpath: //span[@class="tel"]
        # contact email xpath: (//noscript)[1]

        contact_name = response.xpath('(//div[@class="vcard"]/b)[1]/text()').get()
        phone = response.xpath('//span[@class="tel"]/text()').get()
        email = response.xpath('(//noscript)[1]/text()').get()


        yield {
            'Contact Name': contact_name,
            'Phone': phone,
            'Email': email
        }

电子邮件的文本由两个独立的部分组成,@sign是一个图像,可能正是为了让像你这样的废品者更难:-)你需要更改你的代码,例如,
a
标记的scrap
href
属性。@buran我刚开始学习网络废品。你能指导我如何获得正确的输出吗?可以在我的代码中编辑xpath吗。谢谢