当前位置: 首页 > wzjs >正文

大人怎么做羞羞的网站国内好点的wordpress主题

大人怎么做羞羞的网站,国内好点的wordpress主题,做网站的公司主要工作是什么,昌黎网站建设一、淄博链家二手房网站地址 urlhttps://zb.lianjia.com/ershoufang/ 二、基本知识点总结 这个代码是一个使用 Selenium 和 lxml 库编写的网络爬虫,用于从链家网(Lianjia)的二手房列表页面中提取房屋信息。 代码结构 导入库: …

一、淄博链家二手房网站地址

url=https://zb.lianjia.com/ershoufang/

二、基本知识点总结 

这个代码是一个使用 Selenium 和 lxml 库编写的网络爬虫,用于从链家网(Lianjia)的二手房列表页面中提取房屋信息。

代码结构

  1. 导入库

    • time:用于控制时间延迟。

    • lxml.etree:用于解析 HTML 文档并提取数据。

    • selenium:用于自动化浏览器操作,模拟用户点击和页面跳转。

    • selenium.webdriver:提供浏览器驱动(如 ChromeDriver)。

    • selenium.webdriver.support.ui.WebDriverWait:用于等待页面元素加载。

    • selenium.webdriver.common.by.By:用于定位页面元素。

  2. 配置 ChromeDriver

    • 指定 ChromeDriver 的路径,并初始化 Service 对象。

  3. 解析详情页

    • parse_detail_page(link):打开详情页,等待页面加载完成后调用 parse_detail_info 提取信息,然后关闭详情页并返回列表页。

  4. 解析详情页信息

    • parse_detail_info(source):使用 lxml.etree 解析 HTML 源码,提取价格、标题、地址、面积和户型等信息。

  5. 主循环

    • 打开链家网的二手房列表页面。

    • 使用 lxml.etree 解析列表页,获取每个房源的链接。

    • 遍历每个房源链接,调用 parse_detail_page 提取详细信息。

    • 点击“下一页”按钮,重复上述过程,直到没有下一页为止。

  6. 关闭浏览器

    • 在所有操作完成后,关闭浏览器。


基本知识点

  1. Selenium

    • Selenium 是一个用于自动化浏览器操作的工具,常用于网页测试和爬虫。

    • 通过 webdriver.Chrome 启动 Chrome 浏览器。

    • 使用 driver.get(url) 打开指定网页。

    • 使用 driver.execute_script 执行 JavaScript 代码(如打开新标签页)。

    • 使用 driver.switch_to.window 切换浏览器标签页。

  2. 页面元素定位

    • 使用 WebDriverWait 和 EC.presence_of_element_located 等待页面元素加载完成。

    • 使用 By.XPATH 或 By.CLASS_NAME 等方式定位页面元素。

    • 使用 driver.find_element 或 driver.find_elements 查找单个或多个元素。

  3. XPath

    • XPath 是一种用于在 XML 或 HTML 文档中定位节点的语言。

    • 代码中使用 XPath 提取房源链接、价格、标题、地址等信息。

    • 例如://div[@class="price-container"]//span[@class="total"]/text() 提取价格。

  4. lxml.etree

    • lxml 是一个高效的 HTML/XML 解析库。

    • 使用 etree.HTML(source) 将 HTML 源码转换为可解析的对象。

    • 使用 xpath() 方法提取数据。

  5. 异常处理

    • 使用 try-except 捕获异常(如未找到链接或下一页按钮),避免程序崩溃。

  6. 翻页逻辑

    • 通过查找“下一页”按钮并点击实现翻页。

    • 如果“下一页”按钮包含 disabled 类,则停止翻页。

这段代码是一个典型的 Selenium 爬虫,通过模拟用户操作从链家网提取二手房信息。它结合了 Selenium 的浏览器自动化能力和 lxml 的高效解析能力,适合处理需要 JavaScript 渲染的动态网页。通过学习这段代码,可以掌握 Selenium 的基本用法、XPath 数据提取技巧以及爬虫的翻页逻辑。 

三、具体代码以及详解 

  1. 配置 ChromeDriver

    • 指定 ChromeDriver 的路径,并创建 Service 对象,用于管理 ChromeDriver 的启动和停止。

  2. 解析详情页

    • 使用 driver.execute_script 打开新标签页并跳转到详情页。

    • 使用 driver.switch_to.window 切换到新标签页。

    • 使用 WebDriverWait 等待详情页的关键元素加载完成。

    • 调用 parse_detail_info 函数提取详情页信息。

    • 关闭详情页并切换回列表页。

  3. 解析详情页信息

    • 使用 lxml.etree 解析 HTML 源码。

    • 使用 XPath 提取价格、标题、地址、面积和户型等信息。

    • 如果未找到某个信息,则打印“未知”。

  4. 主循环

    • 启动 Chrome 浏览器并打开链家网的二手房列表页面。

    • 使用 WebDriverWait 等待房源列表加载完成。

    • 使用 lxml.etree 解析列表页,提取每个房源的链接。

    • 遍历每个房源链接,调用 parse_detail_page 提取详细信息。

    • 点击“下一页”按钮,重复上述过程,直到没有下一页为止。

  5. 异常处理

    • 在提取链接或点击“下一页”按钮时,捕获异常并处理,避免程序崩溃。

  6. 关闭浏览器

    • 在所有操作完成后,调用 driver.quit() 关闭浏览器。

import time
from lxml import etree
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By# 配置 ChromeDriver
# 指定 ChromeDriver 的路径
driver_path = r"D:\chromdriver\chromedriver-win64\chromedriver.exe"
# 创建 Service 对象,用于管理 ChromeDriver 的启动和停止
service = Service(executable_path=driver_path)# 解析详情页
def parse_detail_page(link):"""打开详情页并提取信息:param link: 详情页的 URL"""# 使用 JavaScript 打开新标签页并跳转到详情页driver.execute_script("window.open('%s')" % link)# 切换到新打开的标签页(详情页)driver.switch_to.window(driver.window_handles[1])# 等待详情页加载完成# 使用 WebDriverWait 等待价格容器元素加载完成,最多等待 10 秒WebDriverWait(driver, timeout=10).until(EC.presence_of_element_located((By.XPATH, '//div[@class="price-container"]')))# 解析详情页信息# 调用 parse_detail_info 函数,传入当前页面的 HTML 源码parse_detail_info(driver.page_source)# 关闭详情页,切换回列表页time.sleep(2)  # 等待 2 秒,确保操作完成driver.close()  # 关闭当前标签页(详情页)driver.switch_to.window(driver.window_handles[0])  # 切换回列表页# 解析详情页信息
def parse_detail_info(source):"""从详情页的 HTML 源码中提取房屋信息:param source: 详情页的 HTML 源码"""# 将 HTML 源码转换为 lxml 的 etree 对象,便于使用 XPath 提取数据html = etree.HTML(source)# 提取价格信息# 使用 XPath 定位价格元素,并提取文本内容price = html.xpath('//div[@class="price-container"]//span[@class="total"]/text()')print("价格:", price[0] if price else "未知")  # 如果找到价格则打印,否则打印“未知”# 提取房屋标题# 使用 XPath 定位标题元素,并提取文本内容title = html.xpath('//h1[@class="main"]/text()')print("标题:", title[0] if title else "未知")  # 如果找到标题则打印,否则打印“未知”# 提取地址信息# 使用 XPath 定位地址元素,并提取文本内容address = html.xpath('//div[@class="communityName"]//a/text()')print("地址:", address[0] if address else "未知")  # 如果找到地址则打印,否则打印“未知”# 提取面积信息# 使用 XPath 定位面积元素,并提取文本内容area = html.xpath('//div[@class="houseInfo"]//div[@class="area"]//div[@class="mainInfo"]/text()')print("面积:", area[0] if area else "未知")  # 如果找到面积则打印,否则打印“未知”# 提取户型信息# 使用 XPath 定位户型元素,并提取文本内容layout = html.xpath('//div[@class="houseInfo"]//div[@class="room"]//div[@class="mainInfo"]/text()')print("户型:", layout[0] if layout else "未知")  # 如果找到户型则打印,否则打印“未知”# 主循环
while True:# 启动 Chrome 浏览器driver = webdriver.Chrome(service=service)# 打开链家网的二手房列表页面driver.get("https://zb.lianjia.com/ershoufang/")# 等待列表页加载完成# 使用 WebDriverWait 等待房源列表元素加载完成,最多等待 10 秒WebDriverWait(driver, timeout=10).until(EC.presence_of_element_located((By.XPATH, '//div[@class="leftContent"]//ul[@class="sellListContent"]')))# 将列表页的 HTML 源码转换为 lxml 的 etree 对象html = etree.HTML(driver.page_source)# 使用 XPath 定位所有房源列表项lis = html.xpath('//div[@class="leftContent"]//ul[@class="sellListContent"]/li')# 遍历每个房源列表项for li in lis:try:# 提取房源的详情页链接link = li.xpath(".//a/@href")[0]  # 调整 XPath 表达式# 调用 parse_detail_page 函数,打开详情页并提取信息parse_detail_page(link)except IndexError:# 如果未找到链接,则跳过该条目print("未找到链接,跳过该条目")continue# 单击下一页按钮try:# 定位“下一页”按钮next_btn = driver.find_element(By.XPATH, "//div[@class='page-box house-lst-page-box']/a[last()]")# 检查“下一页”按钮是否被禁用(即是否到达最后一页)if "disabled" in next_btn.get_attribute("class"):break  # 如果到达最后一页,则退出循环else:# 点击“下一页”按钮driver.execute_script("arguments[0].click();", next_btn)except Exception as e:# 如果未找到“下一页”按钮或无法点击,则退出循环print("未找到下一页按钮或无法点击:", e)break# 关闭浏览器
driver.quit()  # 退出浏览器

 四、运行结果展示


文章转载自:

http://A8Ar2FUl.snrbL.cn
http://ROinNDs9.snrbL.cn
http://pJ6zObV1.snrbL.cn
http://ThLaWzo6.snrbL.cn
http://BbSa7qez.snrbL.cn
http://5rQe79Sz.snrbL.cn
http://0RURbEam.snrbL.cn
http://u3hRdEaC.snrbL.cn
http://zR7HB9F0.snrbL.cn
http://bqcHWkzw.snrbL.cn
http://hg072a1v.snrbL.cn
http://3QfZxroP.snrbL.cn
http://HoE5wmwB.snrbL.cn
http://rlF36H8z.snrbL.cn
http://8Ns7upuQ.snrbL.cn
http://BODQBy0A.snrbL.cn
http://xkqVQLRB.snrbL.cn
http://5Co5DorK.snrbL.cn
http://n1SzRUM0.snrbL.cn
http://yHPEb5oJ.snrbL.cn
http://oCyoklnl.snrbL.cn
http://OesfTF5r.snrbL.cn
http://nHhVkyMM.snrbL.cn
http://tCTZD27j.snrbL.cn
http://2vYG6bXa.snrbL.cn
http://PiCSThJu.snrbL.cn
http://XBuMNxbR.snrbL.cn
http://XzLGz82V.snrbL.cn
http://6XRzhgYb.snrbL.cn
http://QYFhkbxZ.snrbL.cn
http://www.dtcms.com/wzjs/694685.html

相关文章:

  • 网站上怎么做星星评分浙江网站建设推广公司找哪家
  • 做外贸什么网站比较好wordpress wp users
  • 杭州企业网站设计制作wordpress 公用模块
  • 长春网站制作企业做科技汽车的视频网站
  • 哈尔滨设计网站建设建设银行企业网站失败
  • 学网站开发要下载哪些软件网站软件下载安装
  • 公司做网站发生的费用分录康体设备网站建设
  • 江苏备案网站名称搜索引擎环境优化
  • 网站建设与设计 毕业设计手机app软件开发报价
  • 司法局网站开发方案wordpress is home
  • 区网站制作做网站的费用属于哪个科目
  • 可以做兼职笔译的网站温州市微网站制作电话
  • 一般网站建设公司建筑方案设计步骤
  • 网站建设与网络推广的关系临沂做网站建设的公司
  • 做网站 华普花园成都营销型网站建设中账号
  • 网站建设合同管辖做拼多多网站赚钱吗
  • 怎么做网站的图片手机访问能否提高网站权重
  • 单网页网站网页设计流程分为哪几个步骤
  • 网站建设中请期待网站规划小结
  • 哪个网站可以做puzzle栾川网站建设
  • 常德网站建设套餐报价长沙官网优化多少钱
  • 桂林网站设计公司怎样做网站的二维码
  • 东莞网站建设17海口专业网站建设公司
  • 网站运营建设岗位职责防止wordpress目录显示
  • 汽车配件外贸网站合肥网页设计班
  • 软件项目报价广东百度seo关键词排名
  • 汽车网站企业网站改版的意义
  • 阿里巴巴注册网站首页罗湖网站设计多少钱
  • 多种东莞微信网站建设网上商城购物系统
  • mysql网站数据库专门做包装的网站