zoukankan      html  css  js  c++  java
  • 爬虫 案例 图片懒加载 qq空间模拟登录 药监(selenium)

    图片懒加载

    • 图片懒加载概念:

      • 图片懒加载是一种网页优化技术。图片作为一种网络资源,在被请求时也与普通静态资源一样,将占用网络资源,而一次性将整个页面的所有图片加载完,将大大增加页面的首屏加载时间。为了解决这种问题,通过前后端配合,使图片仅在浏览器当前视窗内出现时才加载该图片,达到减少首屏图片请求数的技术就被称为“图片懒加载”。

    • 网站一般如何实现图片懒加载技术呢?

      • 在网页源码中,在img标签中首先会使用一个“伪属性”(通常使用src2,original......)去存放真正的图片链接而并非是直接存放在src属性中。当图片出现到页面的可视化区域中,会动态将伪属性替换成src属性,完成图片的加载。

    • 站长素材案例后续分析:通过细致观察页面的结构后发现,网页中图片的链接是存储在了src2这个伪属性中

    # 图片懒加载
    
    from lxml import etree
    import requests
    
    headers={
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.87 Safari/537.36'
    }
    
    url='http://sc.chinaz.com/tupian/fengjingtupian_%d.html'
    
    fp=open('fengjing.txt','w',encoding='utf-8')
    for page in range(1,5):
        if page==1:
            new_url='http://sc.chinaz.com/tupian/fengjingtupian.html'
        else:
            new_url=format(url%page)
    
        page_text=requests.get(url=new_url,headers=headers).text
        tree=etree.HTML(page_text)
        div_list=tree.xpath('//*[@id="container"]/div')
        for div in div_list:
            img_title=div.xpath('./p/a/text()')[0].encode('iso-8859-1').decode('utf-8')
    
            # 图片懒加载
            img_src=div.xpath('./ div/a/img/@src2')[0]
    
            content=img_title+':'+img_src+'
    '
            fp.write(content)
    
    fp.close()

    qq空间模拟登录

    from selenium import webdriver
    from time import sleep
    
    # 指定驱动位置
    driver=webdriver.Chrome(executable_path='chromedriver.exe')
    
    
    url='https://qzone.qq.com/'
    driver.get(url)
    
    driver.switch_to.frame('login_frame')
    m=driver.find_element_by_id('switcher_plogin')
    print(m)
    m.click()
    
    driver.find_element_by_id('u').send_keys('用户名')
    driver.find_element_by_id('p').send_keys('密码')
    
    driver.find_element_by_id('login_button').click()
    
    sleep(3)
    
    page_text=driver.page_source
    print(page_text)
    
    
    
    driver.quit()

     药# 使用selenium将药监总局的首页的企业名称进行爬取(1-5页)

    from selenium import webdriver
    from time import sleep
    
    # 指定浏览器驱动
    driver = webdriver.Chrome(executable_path=r'chromedriver.exe')
    
    # 用get打开页面
    driver.get('http://125.35.6.84:81/xk/')
    fp = open('药监企业.txt', 'w', encoding='utf-8')
    for page in range(1, 6):
        if page == 1:
            path = 'pageIto_first'
        else:
            path = f'pageIto_first{page}'
      
      #所见即所得
    driver.find_element_by_id(path).click() sleep(
    3) a_list = driver.find_elements_by_xpath('//*[@id="gzlist"]/li/dl/a') for a in a_list: msg = a.text fp.write(msg + ' ') print(f'完成第{page}页面数据获取') fp.close() driver.close()
  • 相关阅读:
    FFmpeg 协议初步学习
    HTML DOM(一):认识DOM
    ant 安装
    ubunut 查看port被哪个程序占用
    cacti气象图调整(批量位置调整、更改生成图大小等)
    内网port映射具体解释(花生壳)
    HDU 2647 Reward(图论-拓扑排序)
    白话经典算法系列之七 堆与堆排序
    Codeforces Round #191 (Div. 2)---A. Flipping Game
    Serverlet具体解释
  • 原文地址:https://www.cnblogs.com/XLHIT/p/11316743.html
Copyright © 2011-2022 走看看