接着上篇,继续讲解HTML结构
老司机,带你用30行代码爬取高清美女写真,附安装包+源码
今天继续讲解HTML结构
一、 爬虫网页内容获取
def down_image( page ):
print(f'页面{page},开始')
t1 = time.time()
# page页面跳转
url = f'https://www.36992.com/girls/list-{page}.html'
resp = requests.get(url)
resp.encoding = utf8
print(resp.text)
down_image(0)
HTML基础
1.接下来,我们按照要求,新建一个html文件。
2.用记事本编辑,把刚刚Python打印的内容复制进来,保存
3.直接双击html文件,就可以用默认浏览器打开
二、 标签
1>种类
按爬虫区分,大致分为3类
超链接a标签,为了获取详情页资料
从a标签的href中取值
媒体标签,img,video,auto,为了下载媒体资源
从标签属性src中取值
文本标签,为了获取产品信息
直接从文本内容text获取,配合正则表达式提取文本
2>属性
这里只讲和爬虫相关的公共属性
1)节点,根据位置,定位元素,默认根节点/父节点/
1 .父节点
2 .子节点
3 .兄弟节点
下篇再讲XPath高级语法
2)id
1 .id 属性规定 HTML 元素的唯一的 id。
2 .id 在 HTML 文档中必须是唯一的。
3 .id 属性可用作链接锚(link anchor),通过 JavaScript(HTML DOM)或通过 CSS 为带有指定 id 的元素改变或添加样式。
>>>如果父,子,兄弟节点或者自身有id值,用id定位很方便
node_list = tree.xpath("//*[@id='id值']")
3)class
1 .在元素开始标签里添加,格式class=“name”,
2 .class并不是唯一的,可以在头部元素里style标签中定义,这样可以让class在多个标签中使用,
3 .如果要指定多个类别那就将类别名字之间用空格分开,格式class=“first second”,
4 .类别名可以两个以上,class尽量用来添加样式,
5 .一个 class 名称可以分配给页 面中任意数量的元素,并且一个元素可以有 一个以上的 class。通常,它是为CSS做准备的,定义一块class name,然后在CSS里改写这块Class的属性,设置不同的样式,例如设置字体大小,背景,行间距等等。
>>>用class定位的时候,获取到的通常不止一个元素,可以打印一下文本,看看定位到了哪个元素
node_list = tree.xpath("//*[@class='class值']")
三、接下来是进阶篇内容,这里只简单提一下
事件
1 .网页,刷到底部更新
2 .点击按钮跳转页面
这类情况网页F12调试已经起不到作用了,需要专业抓包工具:fiddler charles
样式
1 .标签隐藏,display=none
明明F12调试看得到,网页不显示
删除这条属性就可以了
四、引入,为了帮助我们更好的还原网页
样式引入
脚本引入
媒体引入
上面已经写过了
结语
敲重点,理解自己想要的数据去哪找!!!