美文网首页我爱编程
python 爬虫第三天 小项目加扩展无id 重复cssname

python 爬虫第三天 小项目加扩展无id 重复cssname

作者: Neolibo | 来源:发表于2018-01-05 14:35 被阅读0次

    第三天基本小程序写出来,搞定一个动态的网站,里面全是<div></div>
    这里贴出拿取这些数据核心的东西
    就是pyquery 和 webdriver

    
    #获取classname的所有列表
    def text_index_by_classname(pclassname,cclassname):
        print('获取classname的所有列表')
        html = browser.page_source
        doc = pq(html)
        items = doc(pclassname).items()
        i = 1;
        for item in items:
            yield {
                'text': item.find(cclassname).text(),
                'xh' : i
            }
            i = i + 1
    
    

    获取classname中所有classname的内容并编号

    #查询栏目并点击进入
        for item in text_index_by_classname('###','### '):
            print(item)
            if item.__getitem__('text') == '篮球':
                index=item.__getitem__('xh')
                lm = wait.until(EC.element_to_be_clickable(
                    (By.CSS_SELECTOR,
                     'body > ######('+str(index)+')')))
                lm.click()
        if index==0:
            print('现在这个栏目没')
    
    

    这里拿出来后根据顺序号,使用webdriver 进行元素操作,这也是解决绝大多数 无id标签的操作,,要做这个之前要对整个页面的css selector进行评估分析后进行

      browser.switch_to.frame(browser.find_element_by_name('framename'))
        je = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#cssselector)))
        je.send_keys('2')
    
    
        tz=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,cssselector  ))
        tz.click()
    
        browser.switch_to.default_content()   # 切出
    

    对frame的内容操作要切入切出

    def wait_jz(cssselector):
        wait.until(EC.element_to_be_clickable(
            (By.CSS_SELECTOR,cssselector)))
    

    最重要的就是要等我们页面加载完,然后再操作

    关键差不多了,不过这个项目的自动登录不像其他网站那么简单,目前还未成功,
    下一步学习前台界面,线程监控24小时监控,希望后两天能完成

    相关文章

      网友评论

        本文标题:python 爬虫第三天 小项目加扩展无id 重复cssname

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