01/10/2018, 11:10

Vấn đề Sử dụng Xpath crawl dữ liệu trong Scrapy Python

div class=“breadcrumb
breadcrumb_theme_elegant js-breadcrumb” style=“position: relative;”

Em muốn lấy đoạn div này bằng xpath nhưng không thể lấy được.
Đây là xpath của em

$x(’//div[@class=“header__breadcrumb”]/div[@class=“breadcrumb_theme_elegant”]’)
$x(’//div[@class=“header__breadcrumb”]/div[@class=“breadcrumb”]’)
$x(’//div[@class=“header__breadcrumb”]/div[@class=“breadcrumb breadcrumb_theme_elegant js-breadcrumb”]’)

Em thử cả 3 cách đều không được. Hình như trong code có dấu xuống dòng nên không được hay sao ý.

Nhờ các bác chỉ giáo giúp ạ

Anh Tú viết 13:24 ngày 01/10/2018

response.xpath(’//*[@class=“breadcrumb breadcrumb_theme_elegant js-breadcrumb”]’)

Còn 1 khả năng nữa là trang web render bởi JS, thì không thể trực tiếp dùng xpath được mà còn phải qua 1 bước khác.

Mà tôi thấy bạn hỏi khá nhiều về scrapy, mỗi câu hỏi lạo lập topic riêng, muốn tạo rác à? Đã thử google câu hỏi bằng tiếng anh chưa? Đã đọc docs chưa?

Hà Temwin viết 13:25 ngày 01/10/2018

Em nào đâu muốn hỏi nhiều. Mỗi lần em đặt câu hỏi là em đã cày hết google lên rồi em mới hỏi đấy chứ.

Như đoạn source của bác viết ra em đã thử rồi nhưng như câu em muốn hỏi là trong source HTML của site mình định crawl thì class của nó viết lại xuống dòng chứ k nằm trên 1 dòng (tức là thay bằng dấu cách thì nó dùng dấu enter). Nên xpath nó không ra kết quả được bác ạ.

Em muốn hỏi là có phải do enter không?

Tài liệu online bằng tiếng anh thì nó chỉ lấy vd các css đơn giản, các class đơn chứ nó k nói đến vấn đề này. Cái này em nghĩ là trải nghiệm thực tế, làm nhiều thì đúc rút ra được.

Anh Tú viết 13:19 ngày 01/10/2018

Vậy đoạn trên mình viết bạn đã chạy thử chưa?

Hà Temwin viết 13:12 ngày 01/10/2018

Thử rồi k được bác ạ.
Nhưng em sử dụng cách khác rồi.
Chỉ là băn khoăn mình làm đúng công thức rồi mà nó không ra thôi.
Hình như trong xpath nó phải chuẩn cả từng dấu cách, dấu enter

Bài liên quan
0