Tôi đang sử dụng scrapy
để sàng lọc dữ liệu cạo từ một trang web. Tuy nhiên, dữ liệu tôi muốn không phải bên trong chính html, thay vào đó, nó là từ một javascript. Vì vậy, câu hỏi của tôi là:Phế liệu, tháo dỡ dữ liệu bên trong Javascript
Cách lấy giá trị (giá trị văn bản) của các trường hợp như vậy?
này, là trang web tôi đang cố gắng để màn cạo: https://www.mcdonalds.com.sg/locate-us/
Attributes Tôi đang cố gắng để có được: giờ Địa chỉ, liên hệ, điều hành.
Nếu bạn thực hiện "nhấp chuột phải", "nguồn xem" bên trong trình duyệt chrome, bạn sẽ thấy rằng các giá trị đó không có sẵn trong HTML.
Sửa
Sry paul, tôi đã làm những gì bạn nói với tôi đến, thấy admin-ajax.php
và thấy cơ thể nhưng, tôi thực sự bị mắc kẹt ngay bây giờ.
Làm cách nào để truy xuất các giá trị từ đối tượng json và lưu nó vào trường biến của riêng tôi? Nó sẽ là tốt, nếu bạn có thể chia sẻ làm thế nào để làm chỉ là một thuộc tính cho công chúng và cho những người chỉ cần bắt đầu cạo là tốt.
Dưới đây là mã của tôi cho đến nay
Items.py
class McDonaldsItem(Item):
name = Field()
address = Field()
postal = Field()
hours = Field()
McDonalds.py
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
import re
from fastfood.items import McDonaldsItem
class McDonaldSpider(BaseSpider):
name = "mcdonalds"
allowed_domains = ["mcdonalds.com.sg"]
start_urls = ["https://www.mcdonalds.com.sg/locate-us/"]
def parse_json(self, response):
js = json.loads(response.body)
pprint.pprint(js)
Sry cho chỉnh sửa dài, do đó trong ngắn hạn, làm thế nào để tôi lưu trữ giá trị json vào thuộc tính của tôi? cho ví dụ
*** mục [ 'địa chỉ'] = * Làm thế nào để lấy ****
PS, không chắc chắn nếu điều này giúp nhưng, tôi chạy các kịch bản trên dòng cmd sử dụng
scrapy crawl mcdonalds -o McDonalds.json -t json (để lưu tất cả dữ liệu của tôi vào một tệp json)
Tôi không thể nhấn mạnh vào cảm giác biết ơn của mình. Tôi biết nó không hợp lý khi hỏi điều này của bạn, sẽ hoàn toàn ổn cả cho dù bạn không có thời gian cho việc này.
Thx để được trợ giúp Rho, đó là thông tin và nó hoạt động! * Đối với những người phải đối mặt với cùng một vấn đề với tôi, hãy kiểm tra bài đăng này * – HeadAboutToExplode