Python学习笔记——20170831
来源:互联网 发布:java web开发教程视频 编辑:程序博客网 时间:2024/06/03 23:00
同城旅游网 爬虫练习
- 类库安装
- pip install requests
- pip install beautifulsoup4
- 代码
import requestsfrom bs4 import BeautifulSoupimport os##def get_html(url): """ 获取html源码 :param url: 链接地址 :return: html源码 """ headers = {"User-Agent": "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"} response = requests.get(url, headers=headers) response.encoding = response.apparent_encoding if response.status_code == 200: return response.text else: print("网络访问出错")##def parse_html(html): """ 解析html源码 :param html: html代码 :return: 返回数据List """ soup = BeautifulSoup(html, 'lxml') items = soup.select("#tagList > ul > li > div.line-info > div") infoList = [] for each in items: each_soup = BeautifulSoup(str(each), 'lxml') info = { 'type': each_soup.select('div.line-imgbox > span')[0].string, 'title': each_soup.select('p.line-title > b')[0].string, 'price': each_soup.select('div.line-pricebox > div > p')[0].em.next_sibling, } if len(each_soup.select('p.sat-num')) == 0: info['satisfied'] = 'None' else: info['satisfied'] = each_soup.select('p.sat-num')[0].em.previous_sibling infoList.append(info) return infoList##def save_file(path, text): """ 文本存储 :param path: 存储路径 :param text: 文本内容 :return: None """ file_name = path.split("/")[-1] dir_path = path.strip(file_name) if not os.path.exists(dir_path): os.mkdir(dir_path) with open(path, 'w', encoding='UTF-8') as file: file.write(text)##if __name__ == '__main__': url = 'https://www.ly.com/dujia/taiguo-lvyou/f394/' html = get_html(url) infoList = parse_html(html) save_file('./lyinfo.json', str(infoList).replace('\'', '\"'))
阅读全文
0 0
- Python学习笔记——20170831
- python 学习笔记——python globals()
- Python学习笔记 — 函数
- Python学习笔记—钱珺
- python学习笔记—输入输出
- OpenCV—Python 学习笔记
- Python学习笔记(—):初识python
- 【笔记】Python学习笔记 ——1
- Python学习笔记——Unicode
- python学习笔记——文件
- Python学习笔记——描述符
- Python学习笔记——切片操作
- python学习笔记——字典
- python学习笔记——字典
- Python学习笔记——常量定义
- 学习python笔记——基本概念
- 学习python笔记——表达式
- 学习python笔记——控制流
- 认识Java Core和Heap Dump
- java使用new关键字创建对象时内部为做一些什么事!!!!!
- 有源汇上下界最小流 BZOJ 2502: 清理雪道
- Maven入门教程
- elastic-job的elastic-job-lite-console部署
- Python学习笔记——20170831
- Android官方DataBinding(十):双向绑定之基于InverseBindingAdapter的反向绑定
- [Quartz笔记]玩转定时调度
- 工作中为什么要用多线程,它的好处,以及一个简单多线程实例。
- [Java 安全]加密算法
- Java项目导出可运行的jar文件
- Android魔术——手把手教你实现水晶球波浪进度条
- Java小程序之100-1000之间的质数
- NLP、language model、lstm、attention model