python 爬虫第三天 小项目加扩展无id 重复cssname获取数据与selenium操作

第三天基本小程序写出来,搞定一个动态的网站,里面全是


这里贴出拿取这些数据核心的东西
就是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获取数据与selenium操作)