[Help] cần lấy cái link img ở python

Discussion in 'Linux - PHP - Python - C# - Java' started by grayhatvn, Dec 1, 2018.

Tags:
  1. grayhatvn

    grayhatvn Bang Chúng

    Vấn đề bóc tách để lấy đc cái link img ok rồi, nhưng cái thẻ div chứa các link image bị google chặn rồi, chơi kiểu bình dân chắc khó lấy, pro nào rảnh rảnh quăn cho mình xin cục gạch :D
    Link demo victim : https://www.google. com. vn/search?tbm=isch&q=ngoc+trinh
    Chơi đồ bình dân :
    Code:
     soup = BeautifulSoup(page.text, 'lxml')
    print(soup)
    Ngang đây mà chỉ parse đc cái header còn cái content và footer không ra đc :D . Bypass dc cái này chắc là một đống ý tưởng để làm vệ tinh cho site chính :D
     
  2. thitgaluoc

    thitgaluoc Hương Chủ

    bác dùng requests hoặc urlopen đúng k? :D cái nội dung nó được render từ javascript bác nhé, bác cài noscript (firefox) hoặc scriptsafe(chrome) thì sẽ thấy block js là sẽ không thấy nội dung đâu, thế nên requests hay urlopen không hỗ trợ js nên k ra được nội dung là đúng rồi. Cái này 1 là bác dùng selenium, 2 là scrapy nó có thằng splash đại khái là bộ render js, 3 là dùng kết hợp nodejs nhưng khá là phức tạp :D
     
    Vito_King likes this.
  3. grayhatvn

    grayhatvn Bang Chúng

    Chà căng hè, tính ra ăn cơm google đâu dễ nhỉ :D, nhưng nếu tìm cách ăn đc thì đúng là phê :v
     
  4. Hoa Mãn Lâu

    Hoa Mãn Lâu Trưởng Môn

    Dùng curl với đầy đủ cookies, UA xem nó chịu ra ko? Còn khó quá chơi selenium headless hoặc phantomjs. Cái nào củng có thể fix dc với đk có 1 cái nền khá khá về kĩ thuật
     
  5. Trần Trọng Bách

    Trần Trọng Bách Sơ Nhập Giang Hồ

    Mình thử code này ok nhé, k bị js gì đâu.

    Code:
    import requests
    from user_agent import generate_user_agent, generate_navigator  # https://github.com/lorien/user_agent  pip install -U user_agent
    from bs4 import BeautifulSoup  # pip install beautifulsoup4
    
    url = "https://www.google.com.vn/search?tbm=isch&q=ngoc+trinh"
    
    page = response = requests.get(url, headers={'user-agent': generate_user_agent()})
    if page.status_code == 200:
        soup = BeautifulSoup(page.text, 'html.parser')
        _img_google =soup.select('div.rg_meta.notranslate')
        for abc in _img_google:
            try:
                _slipt  = abc.get_text().split('"ou":')[1].split(',"ow"')[0].strip()
                print(_slipt)
            except:
                print("Error: ")
                print(abc.get_text())
     
    Kiến Lửa and thitgaluoc like this.
  6. mitom

    mitom Tân Thủ Thôn

    Nên sử dụng selenium chorme headless nhé, phantomjs giờ ít sử dụng vì mấy web anti nó detect nhiều.
    Chơi với google thì có proxy nữa chứ nhỉ ??