这不是css问题。数据是动态创建的。您可以从json文件中获取它(在浏览器中打开devtools,单击网络选项卡,查看json请求并获取所需内容)。
In [1]: req = scrapy.Request('https://greyhoundbet.racingpost.com/results/blocks.sd?r_date=2021-01-01&blocks=header%2Cm
...: eetings')
In [2]: fetch(req)
[scrapy.core.engine] INFO: Spider opened
[scrapy.core.engine] DEBUG: Crawled (200) <GET https://greyhoundbet.racingpost.com/results/blocks.sd?r_date=2021-01-01&blocks=header%2Cmeetings> (referer: None)
In [3]: json_data = response.json()
In [4]: for data in json_data['meetings']['tracks']['1']['races']:
...: print(data['track'])
...:
Newcastle
Swindon
Kinsley
In [5]: for data in json_data['meetings']['tracks']['2']['races']:
...: print(data['track'])
...:
Monmore
Crayford
Hove
Harlow
Henlow
编辑:
蜘蛛py
import scrapy
class ExampleSpider(scrapy.Spider):
name = "exampleSpider"
start_urls = ['https://greyhoundbet.racingpost.com/results/blocks.sd?r_date=2021-01-01&blocks=header%2Cmeetings']
def parse(self, response):
json_data = response.json()
for data in json_data['meetings']['tracks']['1']['races']:
yield {'race': data['track']}
for data in json_data['meetings']['tracks']['2']['races']:
yield {'race': data['track']}
Example for spider
主要的py:
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
if __name__ == "__main__":
spider = 'exampleSpider'
settings = get_project_settings()
settings['USER_AGENT'] = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
process = CrawlerProcess(settings)
process.crawl(spider)
process.start()
How to run scrapy from a script