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

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

最新文章

  1. Lr IP欺骗设置
  2. iOS常用第三方开源框架和优秀开发者博客等
  3. java基本数据类型取值范围
  4. 在HTML中禁止文字的复制
  5. 我的c++学习(4) C++输入输出格式的控制
  6. C++ and Java template class and function 模板类和模板函数
  7. DATE,DATETIME,DATETIME2等日期时间数据类型
  8. 虚拟rethat联网问题
  9. Linux中TCP wrapper的使用
  10. Windows Mobile 常用键值VK对应表
  11. springboot之fastjson
  12. 命令行工具osql.exe使用
  13. iTOP-4418/6818开发板用户使用手册内容有哪些
  14. 使用abcpdf分页设置的问题
  15. iOS---------如何搭建ipv6环境
  16. intellij idea设置ss代理
  17. gene Ontology (基因本体论)
  18. 把旧系统迁移到.Net Core 2.0 日记 (18) --JWT 认证(Json Web Token)
  19. 程序员大佬推荐的java学习路线
  20. html5视频播放解决方案

热门文章

  1. Java实现 LeetCode 334 递增的三元子序列
  2. Java实现 LeetCode 4 寻找两个有序数组的中位数
  3. Java实现 LeetCode 240 搜索二维矩阵 II
  4. java实现第四届蓝桥杯有理数类
  5. cuda基础
  6. class 类前向声明
  7. shell命令:命令置换、进程管理
  8. Spring AOP—注解配置方法的使用
  9. 探究:Adobe Premiere Pro CC 2018 导入SRT字幕显示不全问题
  10. CAT12提取surface指标