python3 xpath和requests应用
来源:互联网 发布:iptables禁止所有端口 编辑:程序博客网 时间:2024/06/08 15:43
根据一个爬取豆瓣电影排名的小应用,来简单使用etree和request库。
etree使用xpath语法。
import requestsimport sslfrom lxml import etreessl._create_default_https_context = ssl._create_unverified_contextsession = requests.Session()for id in range(0, 251, 25): URL = 'https://movie.douban.com/top250/?start=' + str(id) req = session.get(URL) # 设置网页编码格式 req.encoding = 'utf8' # 将request.content 转化为 Element root = etree.HTML(req.content) # 选取 ol/li/div[@class="item"] 不管它们在文档中的位置 items = root.xpath('//ol/li/div[@class="item"]') for item in items: # 注意可能只有中文名,没有英文名;可能没有quote简评 rank, name, alias, rating_num, quote, url = "", "", "", "", "", "" try: url = item.xpath('./div[@class="pic"]/a/@href')[0] rank = item.xpath('./div[@class="pic"]/em/text()')[0] title = item.xpath('./div[@class="info"]//a/span[@class="title"]/text()') name = title[0].encode('gb2312', 'ignore').decode('gb2312') alias = title[1].encode('gb2312', 'ignore').decode('gb2312') if len(title) == 2 else "" rating_num = item.xpath('.//div[@class="bd"]//span[@class="rating_num"]/text()')[0] quote_tag = item.xpath('.//div[@class="bd"]//span[@class="inq"]') if len(quote_tag) is not 0: quote = quote_tag[0].text.encode('gb2312', 'ignore').decode('gb2312').replace('\xa0', '') # 输出 排名,评分,简介 print(rank, rating_num, quote) # 输出 中文名,英文名 print(name.encode('gb2312', 'ignore').decode('gb2312'), alias.encode('gb2312', 'ignore').decode('gb2312').replace('/', ',')) except: print('faild!') pass
程序运行结果:
阅读全文
0 0
- python3 xpath和requests应用
- 安装Python3.6和requests
- python3 requests
- Python3 urllib和第三方模块requests
- python3 requests的content和text方法
- Python3之利用requests和BeautifulSoup抓取部分信息
- mac下给python3安装requests库和scrapy库
- python3 requests模块安装
- Python3 requests包学习
- python3.5安装requests
- python3 requests简介
- python3学习-requests使用
- python3 XPath语法
- 介绍requests+threading多线程爬虫,提取采用xpath 和正则两种,介绍线程锁
- XPath应用
- Python3 第三方模块requests
- Python3之Requests模块详解
- python3 json/requests 相关备忘
- springMvc处理ajax请求
- VS fopen_s与fopen支持
- vue-cli入门(三)——人员管理实例
- 手机Web开发 jQuery 获取屏幕高度、宽度
- 带有文字的 switch
- python3 xpath和requests应用
- POJ --- 2728 【最优比率生成树 --- 01分数规划】
- 碎碎的问题
- Quartz 定时任务设置某个时间区间每隔一定时间触发的cron表达式
- crontab 定时配置
- 网络带宽记录
- GC相关参数
- Table 'performance_schema.session_variables' doesn't exist
- socket编程(七)