Python Selenium висит на определенных страницах - PullRequest
0 голосов
/ 23 декабря 2019

Когда я пытаюсь удалить следующий URL, selenium не отвечает в течение 30 секунд, а затем выдает ошибку в строке с красивым супом, потому что не было html-кода для анализа. Моя настройка селен + хром отлично работает с большинством веб-сайтов, но не с этим: http://www.11st.co.kr/product/SellerProductDetail.tmall?method=getSellerProductDetail&prdNo=2609814501&trTypeCd=22&trCtgrNo=895019

Что я должен сделать, чтобы он работал?

Вот мой вариант селена:

def GetSelenium():
    options = webdriver.ChromeOptions()
    options.add_argument("start-maximized")
    options.add_argument("--disable-infobars")
    options.add_argument('headless')
    options.add_argument('lang=ko_KR')
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-dev-shm-usage')
    options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36')

    driver = webdriver.Chrome('/usr/bin/chromedriver',chrome_options=options)
    return driver
@api_view()
def crawlOthers(request, crawl_url):
    crawl_url = request.data["requestUrl"]
    print("URL:" + crawl_url)
    driver = GetSelenium()
    driver.get(crawl_url)
    html = driver.page_source
    driver.quit()
    bsObj = BeautifulSoup(html,'html.parser')

    #parsing deleted

1 Ответ

0 голосов
/ 23 декабря 2019

Я думаю, что функция GetSelenium () неверна. Я думаю, что мы должны объявить значение опции и поместить содержимое в драйвер chrome и вернуть значение драйвера chrome.

Я прикреплю код ниже.

from selenium import webdriver
from bs4 import BeautifulSoup


def GetSelenium():
    options = webdriver.ChromeOptions()
    options.add_argument("start-maximized")
    options.add_argument("--disable-infobars")
    options.add_argument('headless')
    options.add_argument('lang=ko_KR')
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-dev-shm-usage')
    options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36')
    driver = webdriver.Chrome(chrome_options=options)

    return driver

def crawlOthers():
    url = 'http://www.11st.co.kr/product/SellerProductDetail.tmall?method=getSellerProductDetail&prdNo=2609814501&trTypeCd=22&trCtgrNo=895019'
    print("URL:" + url)
    driver = GetSelenium()
    driver.get(url)
    html = driver.page_source
    driver.quit()
    bsObj = BeautifulSoup(html,'html.parser')
    print(bsObj)

    #parsing deleted

if __name__ == '__main__':
    crawlOthers()
...