第三天基本小程序写出来,搞定一个动态的网站,里面全是<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小时监控,希望后两天能完成