我如何使用 scrapy 中的选择器解析这个特定的 html 正文?
How do i parse this specific html body using selector in scrapy?
我正在尝试从特定网站抓取特定项目。
代码片段如下:
# Constant Div Path variables for Parameters.
pathForMovieCardContainer = '//div[@class="card-container wow fadeIn movie-card-container"]'
pathForMovieName = 'div[@class="card-container wow fadeIn movie-card-container"]//div[@class="cards"]//div[@class="card-details"]//div[@class="card-right"]//div[@class="card-title"]/text()'
str_slash = "/"
movies_dict = []
movies = response.xpath(pathForMovieCardContainer).extract()
for movie in movies:
print("***********************")
print(movie)
mov = TestDataCrawlersItem()
mov['name'] = Selector(text=movie).xpath(pathForMovieName).extract()
我无法从路径 'div[@class="card-container wow fadeIn movie-card-container"]//div[@class="cards"]//div[@class="card-details"]//div[@class="card-right"]//div[@class="card-title"]/text()'
获取文本我不确定我的 pathForMovieName
是否构建正确。有人可以帮我弄这个吗?谢谢!
当您需要通过 class 名称 select 元素时,使用 .css()
比 .xpath()
更简单。你可以尝试这样的事情:
movies = response.css('.movie-card-container')
for movie in movies:
item = TestDataCrawlersItem()
item['name'] = movie.css('.card-title::text').get()
有关 CSS select 或:https://parsel.readthedocs.io/en/latest/usage.html
的更多信息
我正在尝试从特定网站抓取特定项目。
代码片段如下:
# Constant Div Path variables for Parameters.
pathForMovieCardContainer = '//div[@class="card-container wow fadeIn movie-card-container"]'
pathForMovieName = 'div[@class="card-container wow fadeIn movie-card-container"]//div[@class="cards"]//div[@class="card-details"]//div[@class="card-right"]//div[@class="card-title"]/text()'
str_slash = "/"
movies_dict = []
movies = response.xpath(pathForMovieCardContainer).extract()
for movie in movies:
print("***********************")
print(movie)
mov = TestDataCrawlersItem()
mov['name'] = Selector(text=movie).xpath(pathForMovieName).extract()
我无法从路径 'div[@class="card-container wow fadeIn movie-card-container"]//div[@class="cards"]//div[@class="card-details"]//div[@class="card-right"]//div[@class="card-title"]/text()'
获取文本我不确定我的 pathForMovieName
是否构建正确。有人可以帮我弄这个吗?谢谢!
当您需要通过 class 名称 select 元素时,使用 .css()
比 .xpath()
更简单。你可以尝试这样的事情:
movies = response.css('.movie-card-container')
for movie in movies:
item = TestDataCrawlersItem()
item['name'] = movie.css('.card-title::text').get()
有关 CSS select 或:https://parsel.readthedocs.io/en/latest/usage.html
的更多信息