Python 爬行表与刮擦,网站有不寻常的html代码。

Python 爬行表与刮擦,网站有不寻常的html代码。,python,html,scrapy,web-crawler,Python,Html,Scrapy,Web Crawler,第一个帖子。我感谢任何指导,迫不及待地想回馈社区 我正在尝试使用scrapy制作一个爬虫程序,从这个表中收集数据 特别是会议名称、地点和日期。但是表tr和td没有类,并且该表位于另一个表中 无论我如何编辑我的代码,它总是给我整个页面 import scrapy class CfpspiderSpider(scrapy.Spider): name = 'cfpspider' allowed_domains = ['http://www.wikicfp.com'] start_urls = [

第一个帖子。我感谢任何指导,迫不及待地想回馈社区

我正在尝试使用scrapy制作一个爬虫程序,从这个表中收集数据

特别是会议名称、地点和日期。但是表tr和td没有类,并且该表位于另一个表中

无论我如何编辑我的代码,它总是给我整个页面

import scrapy


class CfpspiderSpider(scrapy.Spider):
name = 'cfpspider'
allowed_domains = ['http://www.wikicfp.com']
start_urls = ['http://www.wikicfp.com/cfp/call?conference=machine%20learning']

def parse(self, response):
    div = response.css("div.contsec")

    for table in div:
        print(table.css("table")[3].css.extract_first())
稍后,我会让它转到下一页并输出csv或json,但现在我正在尝试获取此表的部分内容。我已经在scrapy shell中测试了一些命令,但我的知识不足。
谢谢

从源代码的外观来看,页面结构如下:

div class="contsec"
| center
| | form
| | | table
| | | | tr
| | | | tr
| | | | tr
| | | | | td
| | | | | | table id="the droids you are looking for"
| | | | tr
编辑:试试这个

def parse(self, response):
    divs = response.css("div.contsec")
    for div in divs:
            table = div.css("table")[3]
            headers = table.css("tr")[0].css("td::text").extract()
            # print("<table headers>")
            print("\t".join(headers))
            # print("</table headers>")
            for row in table.css("tr")[1:]:
                    row_data = row.css("td::text").extract()
                    print("\t".join(row_data))
def解析(self,response):
divs=response.css(“div.contsec”)
对于div中的div:
table=div.css(“table”)[3]
headers=table.css(“tr”)[0].css(“td::text”).extract()
#打印(“”)
打印(“\t”.join(标题))
#打印(“”)
对于table.css(“tr”)中的行[1:]:
row_data=row.css(“td::text”).extract()
打印(“\t”.join(行数据))

谢谢,但您的代码输出的结果与我的原始代码相同吗?我做的不对吗?相同的输出。这两张图片显示了外壳的开始和结束。(有更好的方法在注释中发布代码吗?),我收到了响应消息,与类中基本方法的签名不匹配。这是我的类,类CfpspiderSpider(scrapy.Spider):我刚刚注意到另一个问题,他们将每一行分成两行,跨越在一起。它仍然给我整个div.contsec,我要试着很快地重新制作这个脏兮兮的包装