廿伍-爬虫接受JS渲染

作者: 小秉子 | 来源:发表于2020-02-07 00:55 被阅读0次

    1. 开始

    研究了好久,终于发现了如何做,不过无法异步完成,只能用 Supervisor 开多进程去做了。

    2.使用 selenium 渲染JS

    首先我必须放出参考文章

    实在参考太多了,不能一步步来了。
    尝试过很多种 JS渲染 的方式,最后还是选择了 selenium ,然后后来为了安装那个 chromedriver 也花费了很大力气,现在叫我重来一遍我也真忘了怎么做了。
    以下是单一请求的代码:

    # 测试新方法
    from selenium import webdriver 
    from selenium.webdriver.chrome.options import Options
    from bs4 import BeautifulSoup
    import time
    
    # 各种设置及配置,可参考上述链接
    options= Options()
    options.add_argument('--no-sandbox')
    options.add_argument('--disable-gpu')
    options.add_argument('--hide-scrollbars') 
    options.add_argument('blink-settings=imagesEnabled=false') 
    options.add_argument('--headless') 
    options.add_argument('--incognito')
    options.add_argument('--ignore-certificate-errors')
    options.add_argument('--disable-software-rasterizer')
    options.add_argument('--disable-extensions')
    options.add_argument('--user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36"')
    options.add_argument('--window-size=1280x1024')
    options.add_argument('--start-maximized')
    options.add_argument('--disable-infobars')
    # options.add_argument("–proxy-server=http://ip:端口")
    
    # ChromeDriver 也是一个坑,安装也是参照上述某个链接
    browser = webdriver.Chrome('/usr/bin/chromedriver',chrome_options = options)
    # 可以参照官网 API 
    browser.set_page_load_timeout(20)
    browser.set_script_timeout(20)
    browser.implicitly_wait(20) 
    browser.get('https://weibo.com/1239160407/GcSidx58Y')
    # 等待JS运行完及各种跳转
    time.sleep(10)
    html=browser.page_source
    # 必须退出,不然浏览器进程会驻留
    browser.close()
    browser.quit()
    soup = BeautifulSoup(html, 'lxml')
    import re
    # 爬微博必须 div 爬
    data = soup.select('div')
    for item in data:
        result =  item.get_text()
        strOut=''
        strOut=re.sub('\n+', '\n', result)
        if len(strOut)>10 :
            print(strOut)
    
    

    3. 后续工作

    • 为交互界面页增加删减含某些关键字的内容。
    • 增加展示数据库数据量的页面
    • 有可能写专题爬虫,如微博或者其他

    相关文章

      网友评论

        本文标题:廿伍-爬虫接受JS渲染

        本文链接:https://www.haomeiwen.com/subject/bovpxhtx.html