当前位置: 首页 > 知识库问答 >
问题:

Python Selenium挂在某些页面上

方恺
2023-03-14

当我试图刮下面的url时,selenium在大约30秒内没有响应,然后在带有美丽汤的行上发出错误,因为没有html代码要解析。我的selenium+chrome设置对大多数网站都很好,但这个不是: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个答案

云默
2023-03-14

我认为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()
 类似资料:
  • 无法在WebView中加载以下网页 https://6awlanow.com/about/faqs 到目前为止,我一直在努力- 我已经提供了互联网许可。除了在WebView上,URL在任何地方都可以正常加载。我得到以下错误- 在我的控制台上获取以下信息-

  • 问题内容: 我正在尝试获取这个伐木工人库,并且它总是挂在下载步骤上。 我在星期五和今天都遇到了同样的问题。其他Go软件包安装正常。我正在使用Scientific Linux。有什么想法怎么回事? (它挂在最后一行,到目前为止,我已经运行了20分钟。) 问题答案: 谢谢@Jimb。将git升级到较新版本可解决此问题。

  • 问题内容: 如果用户未登录,我想设置一个cookie。 My中间件: 最后添加到中。 问题: 错误:“ WSGIRequest”对象没有属性“ user” 为什么,当我已经激活身份验证和会话中间件时? 另外,有些页面在出现此错误的地方工作流畅。 我究竟做错了什么 ? 问题答案: 根据FineManual: 因此,我想你最好在auth和会话中间件之前添加你的中间件(假设它仅处理响应)。 话虽这么说,

  • 我想做的是保护一些敏感表单免受但不是所有页面中的攻击。 要保护从如果我设置它在config.php它适用于所有的页面.有没有办法做到这一点只有一些页面通过设置在控制器?

  • 我最近升级到版本2.0.3和一些模板开始失败,我得到了这个错误: 有人面对过这个问题吗?

  • 问题内容: 如何在除登录页面之外的所有页面上显示导航栏,从而不必在每个需要的页面上附加导航栏文件?现在,我在主应用程序布局上包含了导航栏,应如何处理使其保持干燥? 演示(每页上带有导航栏): 问题答案: 创建像这样的命名视图,并按状态按视图设置templateUrl。对于状态,只需不为视图提供templateUrl ,它就不会呈现导航栏。 更新 :隐藏在非状态。