1. # 1、爬取58二手房信息
    import requests
  2. from lxml import etree
  3. #需求:爬取58二手房中的房源信息
  4. if __name__ == '__main__':
  5. #爬取到页面源码数据
  6. url ="https://bj.58.com/ershoufang/"
  7. # 进行UA伪装
  8. headers = {
  9. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0'
  10. }
  11. page_text = requests.get(url = url,headers=headers).text
  12. # 数据解析
  13. tree = etree.HTML(page_text)
  14. # 存储的是li标签对象
  15. li_list = tree.xpath('//ul[@class="houst-list-wrap"]/li')
  16. fp = open('58.txt','w',encoding='utf-8')
  17. for li in li_list:
  18. # ./ 就代表li
  19. #局部解析 一个要加上.
  20. title = li.xpath('./div[2]/h2/a/text()')[0]
  21. print(title,'over')
  22. fp.write(title,'\n')
    2、解析下载图片信息  http://pic.netbian.com/4kmeinv/
    解决乱码的两种方法:
    #1、response.encoding = 'utf-8'
    #2、通用的处理中文乱码的解决方案
       img_name = img_name.encode('iso-8859-1').decode('gbk')
  1. import requests
  2. from lxml import etree
  3. import os
  4. #需求:爬取58二手房中的房源信息
  5. if __name__ == '__main__':
  6. #爬取到页面源码数据
  7. url ="http://pic.netbian.com/4kmeinv/"
  8. # 进行UA伪装
  9. headers = {
  10. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0'
  11. }
  12. response = requests.get(url =url,headers = headers)
  13. #response.encoding = 'utf-8'
  14. page_text = response.text
  15.  
  16. #数据解析:src的属性值 alt属性
  17. tree = etree.HTML(page_text)
  18. li_list = tree.xpath('//div[@class="slist"]/ul/li')
  19. if not os.path.exists('./piclibs'):
  20. os.mkdir('./piclibs')
  21. for li in li_list:
  22. img_src = 'http://pic.netbian.com'+li.xpath('./a/img/@src')[0]
  23. img_name = li.xpath('./a/img/@alt')[0]+'.jpg'
  24. #通用的处理中文乱码的解决方案
  25. img_name = img_name.encode('iso-8859-1').decode('gbk')
  26. #print(img_name,img_src)
  27. #请求图片数据进行持久化存储
  28. img_data = requests.get(url=img_src,headers = headers).content
  29. img_path = 'piclibs/'+img_name
  30. with open(img_path,'wb') as fp:
  31. fp.write(img_data)
  32. print(img_name,'下载成功!!!')
    3、全国城市 历史检测数据 https://www.aqistudy.cn/historydata/
  1. import requests
  2. from lxml import etree
  3. import os
  4. #需求:解析出所有城市名称
  5. if __name__ == '__main__':
  6. #爬取到页面源码数据
  7. url ="https://www.aqistudy.cn/historydata/"
  8. # 进行UA伪装
  9. headers = {
  10. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:77.0) Gecko/20100101 Firefox/77.0'
  11. }
  12. page_text = requests.get(url =url,headers = headers).text
  13. tree = etree.HTML(page_text)
  14. #解析热门城市和所有城市对应的a标签
  15. # div[@class="bottom"]/ul/li/a 热门城市a标签的层级关系
  16. # div[@class="bottom"]/ul/div[2]/li/a 全部城市a标签的层级关系
  17. all_city_names = []
  18. a_list = tree.xpath('//div[@class="bottom"]/ul/li/a | //div[@class="bottom"]/ul/div[2]/li/a')
  19. for a in a_list:
  20. city_name = a.xpath('./text()')[0]
  21. all_city_names.append(city_name)
  22. print(all_city_names,len(all_city_names))

4、获取简历   sc.chinaz.com  免费简历

xpath实战的更多相关文章

  1. xpath-房价爬取

    xpath xpath两种使用方式 和bs类似,一种是调用本地资源,一种是网络资源 etree.parse(filePath) etree.HTML('page_text') xpath表达式 层级: ...

  2. 【爬虫】-xpath语法熟悉及实战

    本文为自学记录,部分内容转载于 w3school python3网络爬虫实战 知乎专栏:写点python 如有侵权,请联系删除. 语法 1.选取节点 XPath 使用路径表达式在 XML 文档中选取节 ...

  3. python动态网站爬虫实战(requests+xpath+demjson+redis)

    目录 前言 一.主要思路 1.观察网站 2.编写爬虫代码 二.爬虫实战 1.登陆获取cookie 2.请求资源列表页面,定位获得左侧目录每一章的跳转url(难点) 3.请求每个跳转url,定位右侧下载 ...

  4. xpath定位实战(1)

    1.执行scrapy shell "https://book.douban.com/subject/2256039/"

  5. python3[爬虫实战] 使用selenium,xpath爬取京东手机

    使用selenium ,可能感觉用的并不是很深刻吧,可能是用scrapy用多了的缘故吧.不过selenium确实强大,很多反爬虫的都可以用selenium来解决掉吧. 思路: 入口: 关键字搜索入口 ...

  6. scrapy实战2,使用内置的xpath,re和css提取值

      以伯乐在线文章为爬取目标blog.jobbole.com,发现在"最新文章"选项中可看到所有文章   一般来说,可以用scrapy中自带的xpath或者css来提取数据,定义在 ...

  7. [Python3网络爬虫开发实战] 4.1-使用XPath

    XPath,全称XML Path Language,即XML路径语言,它是一门在XML文档中查找信息的语言.它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索. 所以在做爬虫时,我们完全 ...

  8. 【Day3】项目实战。百度针对Xpath的反爬策略和解决方式

    import lxml.etree as le with open('edu.html','r',encoding='utf-8') as f: html = f.read() html_x = le ...

  9. 爬虫实战 豆瓣音乐top250 xpath

    刷知乎时刷到一篇爬取豆瓣音乐top250的,然后看了看,感觉自己的爬虫又更上一层楼了哈啊哈哈,尤其是发现xpath这么好用的东西. 不过也有一个感慨,就是有很多种方式都可以获得想要的数据,对于入门的新 ...

随机推荐

  1. Java实现 LeetCode 179 最大数

    179. 最大数 给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数. 示例 1: 输入: [10,2] 输出: 210 示例 2: 输入: [3,30,34,5,9] 输出: 9534330 ...

  2. Java实现 LeetCode 86 分割链表

    86. 分隔链表 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前. 你应当保留两个分区中每个节点的初始相对位置. 示例: 输入: head = 1 ...

  3. java实现串的反转

    串的反转 反转串 我们把"cba"称为"abc"的反转串. 求一个串的反转串的方法很多.下面就是其中的一种方法,代码十分简洁(甚至有些神秘),请聪明的你通过给出 ...

  4. java代码(15) ---java8 Function 、Consumer 、Supplier

    Java8 Function.Consumer.Supplier 有关JDK8新特性之前还有三篇博客: 1,java代码(1)---Java8 Lambda 2,java代码(2)---Java8 S ...

  5. DMR对讲机利用XLX网络联网通信

    By 申建军 BD8SN 2018-9-29 本文适用于运行G4KLX DMRGateway的MMDVM热点和中继,目前国内绝大部分的热点用户都是使用pi-star镜像的MMDVM热点,均可按此设置. ...

  6. Error:org.gradle.api.internal.tasks.DefaultTaskInputs$TaskInputUnionFileCollection cannot be cast to...异常处理

    这个是打开Android Studio项目报的错误提示,单纯从上面的提示还是不能太直接的知道什么问题.后来我想这个项目的Gradle版本与我当前AS使用的版本不一致,可能是这个问题. 修改build. ...

  7. vue2.0+Element UI 表格前端分页和后端分页

    之前写过一篇博客,当时对element ui框架还不太了解,分页组件用 html + css 自己写的,比较麻烦,而且只提到了后端分页 (见 https://www.cnblogs.com/zdd20 ...

  8. 移动端响应式布局,rem动态更新

    (function(){ var fontSizeMatchDeviceWidth = function(){ var deviceWidth = document.documentElement.c ...

  9. FastStone+ImageReady+Kutools plus导入图片到Excel单元格

    先前打算自己做一个也附带训练下,发现有下面方法也好. 1)做帮助文档时需要一种格式(需要将图片导入到Excel中时,假如是按此法归类汇总) 2)FastStone滚动截图       粘贴到Photo ...

  10. 测试必备工具之最强抓包神器 Charles,你会了么?

    前言 ​ 作为软件测试工程师,大家在工作中肯定经常会用到各种抓包工具来辅助测试,比如浏览器自带的抓包工具-F12,方便又快捷:比如时下特别流行的Fiddler工具,使用各种web和APP测试的各种场景 ...