Python技术分享(二)
程序员文章站
2022-05-17 20:58:48
...
#爬虫案例
#1.html 前端
#2.python 第三方工具
#3.图书比价工具
#爬虫 大数据 大 数据
#前端 html(超文本标记语言) css(叠层样式) javascript(动态解释语言)(动态效果)
#html 爬虫的内容都是在html的标签
-
index.html
简单网页编写
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>欢迎来到王者荣耀</h1>
<!--无序列表-->
<ul>
<li><a href="https://pvp.qq.com/web201605/herodetail/112.shtml">鲁班七号</a></li>
<li><a href="https://pvp.qq.com/web201605/herodetail/131.shtml">李白</a></li>
<li><a href="https://pvp.qq.com/web201605/herodetail/136.shtml">武则天</a></li>
<li><a href="https://pvp.qq.com/web201605/herodetail/142.shtml">安其拉</a></li>
</ul>
<!--p标签单独占一行-->
<!--<a href="http://www.neusoft.com">点击跳转至东软官网</a>-->
</body>
<p>请选择您的英雄出装</p>
<div>这是一个div标签</div>
<div id="container">
<a href="http://www.neusoft.com">点击跳转至东软官网</a>
<p class="action-checkbox">青岛理工大学</p>
</div>
<img src="安其拉.jpg" alt="哈哈哈">
</html>
-
use_xpath_demo.py
读取本地文件的html文件的源代码 文件操作
#使用xpath语法进行html 解释 x path
# 读取本地文件的html文件的源代码 文件操作
# f=open(file='./static/index.html',mode='r',encoding='utf-8')
# html_data=f.read()
#导入lxml库
import lxml
#from 模块名 import 对象1,对象2
from lxml import html
html_data=open(file='./static/index.html',mode='r',encoding='utf-8').read()
print(html_data)
#使用第三方lxml库进行html内容解释
#安装 :pip install lxml
selector=html.fromstring(html_data)
print(selector)
# / 代表根节点 要获取标签的内容需要在最后加 /text
h1=selector.xpath('/html/body/h1/text()')
print(h1)
#//代表从任意的位置出发
#//标签名1[@属性="属性值"]/标签2[@属性="属性值"]/.../text()
#获取a标签的内容
a=selector.xpath('//div[@id="container"]/a/text()')
print(a)
#获取a标签的链接属性
#与之前不同的是末尾加@属性名
link=selector.xpath('//div[@id="container"]/a/@href')
print(link)
#获取英雄的列表
ul_list=selector.xpath('//ul/li')
#len()获取元素的个数
print(len(ul_list))
#使用for循环遍历ul_list
for li in ul_list:
hero=li.xpath('a/text()')
print(hero)
-
spiger_dangdang.py
当当网图书爬虫
#使用requests库 进行http请求
#安装requests
#导入requests
import requests
from lxml import html
url='http://search.dangdang.com/?key=9787115428028&act=input'
resp=requests.get(url)
print(resp)
html_data=resp.text
#print(html_data)
selecter=html.fromstring(html_data)
#获取图书信息
ul_list=selecter.xpath('//div[@id="search_nature_rg"]/ul/li')
print(len(ul_list))
#使用for循环
for li in ul_list:
#书名
title=li.xpath('a/@title')
print(title)
#价格
price=li.xpath('p[@class="price"]/span[1]/text()')
print(price)
-
spider_douban.py
豆瓣影视爬虫
#豆瓣影视爬虫
import requests
from lxml import html
#爬虫页面地址
url="https://movie.douban.com/cinema/later/qingdao/"
# 请求服务器得到相应的内容
resp=requests.get(url)
html_data=resp.text
selector=html.fromstring(html_data)
#获取电影信息
ul_list=selector.xpath('//div[@class="intro"]')
print(len(ul_list))
#使用for循环
for film in ul_list:
#电影名
film_name=film.xpath('h3/a/text()')
print("电影名:"+film_name[0])
# 上映日期
film_date=film.xpath('ul/li[1]/text()')
print("上映日期:" + film_date[0])
# 类型
film_type=film.xpath('ul/li[2]/text()')
print("类型:" + film_type[0])
# 国家
film_country = film.xpath('ul/li[3]/text()')
print("国家:" + film_country[0])
# 想看人数
film_people = film.xpath('ul/li[4]/span[1]/text()')
print("想看人数:" + film_people[0])
print("----------------------------------")
上一篇: 深入研究电脑死机的原因
下一篇: Java中处理CST格式时间