千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > selenium-综合案例

selenium-综合案例

来源:千锋教育
发布人:qyf
时间: 2022-09-08 18:01:00 1662631260

selenium-综合案例

  综合案例

  import os

  from selenium import webdriver

  from selenium.webdriver.common.by import By

  from selenium.webdriver.support import expected_conditions as EC # available since 2.26.0

  from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0

  from selenium.webdriver.support import expected_conditions

  import pandas as pd

  class MyCrawler(object):

  def __init__(self):

  self.path = "./data"

  if not os.path.exists(self.path):

  os.mkdir(self.path)

  self.driver = webdriver.Chrome()

  self.base_url = "http://data.house.163.com/bj/housing/trend/district/todayprice/{date:s}/{interval:s}/allDistrict/1.html?districtname={disname:s}#stoppoint"

  self.data = None

  def craw_page(self, date="2020.01.01-2020.12.30", interval="month", disname="全市"):

  driver = self.driver

  url = self.base_url.format(date=date, interval=interval, disname=disname)

  driver.get(url)

  try:

  WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "resultdiv_1")))

  self.data = pd.DataFrame()

  ct = True

  while ct:

  self.get_items_in_page(driver)

  e_pages = driver.find_elements_by_xpath(

  '//div[@class="pager_box"]/a[@class="pager_b current"]/following::a[@class="pager_b "]')

  if len(e_pages) > 0:

  next_page_num = e_pages[0].text

  e_pages[0].click()

  # 通过判断当前页是否为我们点击页面的方式来等待页面加载完成

  WebDriverWait(driver, 10).until(

  expected_conditions.text_to_be_present_in_element(

  (By.XPATH, '//a[@class="pager_b current"]'),

  next_page_num

  )

  )

  else:

  ct = False

  brea

  return self.data

  finally:

  driver.quit()

  def get_items_in_page(self, driver):

  e_tr = driver.find_elements_by_xpath("//tr[normalize-space(@class)='mBg1' or normalize-space(@class)='mBg2']")

  temp = pd.DataFrame(e_tr, columns=['web'])

  temp['时间'] = temp.web.apply(lambda x: x.find_element_by_class_name('wd2').text.split(' ')[0])

  temp['套数'] = temp.web.apply(lambda x: x.find_element_by_class_name('wd5').text)

  temp['均价'] = temp.web.apply(lambda x: x.find_element_by_class_name('wd7').text)

  temp['去化'] = temp.web.apply(lambda x: x.find_element_by_class_name('wd14').text)

  del temp['web']

  self.data = pd.concat([temp, self.data], axis=0)

  mcraw = MyCrawler()

  data = mcraw.craw_page()

  data= data.sort_values(by='时间')

  print(data.to_string(index=False))

图片1

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT