Requests nhưng lại không ra link cần có trong web

Chào mọi người ! :kissing_smiling_eyes:
Tình hình là em đang tìm hiểu về cái requests này và đang làm cái tool nho nhỏ để get link fshare từ trang linkvip.info. ( chắc gọi là get link từ trang get link fshare ấy ạ :yum: )

Đây là code của em :

import requests

linkVipInfo = r"https://linkvip.info/?q=https%3A%2F%2Fwww.fshare.vn%2Ffile%2FTJ1WSZWAKT%3Ftoken%3D1545543051"

start = requests.get(linkVipInfo)
html = start.content.decode("utf-8")

file = open("html.html", "wb")
file.write(html.encode())
 
file.close()

Nhưng vấn đề là sau khi đã ghi ra đc file.html rồi thì lại không có cái link cần get đó.

Mà cái chỗ “i.url” trong ảnh trên thì em Chuột phải -> Kiểm tra trên web thì là url cần get .

Nhưng qua tìm hiểu đc tí ti thì em đoán là do code của e nó get lúc trang nó đang get link mà chưa trả về link .

Đây! Chắc là nó get về lúc này nên chưa có link. :thinking:
Vậy các ac nào gợi ý giúp mình cách giải quyết được không ạ ??
Em xin cám ơn ! :smiling_face_with_three_hearts:

Lý do bạn không crawl được: Requests ko thể tải ajax content
Bạn phải requests GET cái api này nè

Sau đó bạn sẽ có Respond này

Có thể thử trên Postman như này:

Cách để gọi requests GET/POST trong Python:

def call_api(data, url, method, timeout=3):
    headers = {
        'content-type': "application/x-www-form-urlencoded",
        'cache-control': "no-cache",
        'postman-token': "6a410524-a8e2-79c7-bd9d-53e4b68c84c7"
    }
    response = requests.request(method, url, data=data, headers=headers, timeout=timeout)
    return response.text

// Call vs requests
email = generate_random_emails(random.randint(7, 20))
        password = get_random_name(letters, random.randint(6, 20))
        data = {'_u670129144241957701': email, '_u627346924137945252': password, 'form_version': 2,
                'wsite_approved': 'approved', 'ucfid': '745490546360063774'}

        res = call_api(data, <url_api_here>,
                       'POST')
        if res != 200:

Bổ sung: respond này là json string, bạn dùng lib json gọi hàm loads để đưa nó về dict nhé.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?