1小时入门python爬虫-大鹏课程笔记(3)

本文档详细介绍了HTML的基础知识,包括HTML的标签、元素、属性等,以及如何使用Python的requests库和BeautifulSoup库进行网页访问和解析,最后通过实战案例展示了数据爬取的基本流程。
摘要由CSDN通过智能技术生成

此为教程笔记

教程地址:https://study.163.com/course/courseMain.htm?courseId=1209401897

感谢老师:城市数据团大鹏

目录

1 读懂网页结构(HTML)

1.1 什么是HTML?

1.2 HTML的标签、元素、属性

2 页面解析及标签提取

2.1 如何用Python访问网址

2.2 使用BeatufulSoup解析网页

2.3 获取标签的三种方法

3 实现第一个数据爬虫

4 数据分析师应该注意什么


1 读懂网页结构(HTML)

HTML更多信息访问菜鸟教程

1.1 什么是HTML?

HTML 是用来描述网页的一种语言。

  • HTML 指的是超文本标记语言: HyperText Markup Language
  • HTML 不是一种编程语言,而是一种标记语言
  • 标记语言是一套标记标签 (markup tag)
  • HTML 使用标记标签来描述网页
  • HTML 文档包含了HTML 标签及文本内容
  • HTML文档也叫做 web 页面

1.2 HTML的标签、元素、属性

HTML 标记标签通常被称为 HTML 标签 (HTML tag)。

  • HTML 标签是由尖括号包围的关键词,比如 <html>
  • HTML 标签通常是成对出现的,比如 <b>(开始标签 )和 </b>(结束标签
  • 开始和结束标签也被称为开放标签闭合标签

格式为:<标签>内容</标签>

常见的标签:

<html> </ html>创建一个HTML文档
<head> </ head>设置文档标题和其他在网页中不显示的信息
<title> </ title>设置文档的标题 , 包括<h1> - <h6>  ,分别表示最大标题和最小标题  

<p> </p>段落标签

<img> 是空标签,意思是说,它只包含属性Src,并且没有闭合标签。

<a> </a>超链接标签

列表标签:有序列表<ol>、无序列表<ul>,列表项<li>

<body> </body>主体内容标签,一般网页内容均放入此标签组之间。爬虫主要爬body标签。

<div>块标签,<span>文本容器,也是块标签

<script>定义客户端脚本

网页的总标签为<html>,<html>由<head>和<body>构成。为树结构。

标签大全网址:http://www.divcss5.com/html/h356.shtml

HTML的元素

  • HTML 元素以开始标签起始
  • HTML 元素以结束标签终止
  • 元素的内容是开始标签与结束标签之间的内容
  • 某些 HTML 元素具有空内容(empty content)
  • 空元素在开始标签中进行关闭(以开始标签的结束而结束)
  • 大多数 HTML 元素可拥有属性

HTML 属性

  • HTML 元素可以设置属性
  • 属性可以在元素中添加附加信息
  • 属性一般描述于开始标签
  • 属性总是以名称/值对的形式出现,比如:name="value"

常见属性如:

HTML 链接由 <a> 标签定义。链接的地址在 href 属性中指定:

实例,超链接的属性名为href

<a href="http://www.runoob.com">这是一个链接</a>

2 页面解析及标签提取

2.1 如何用Python访问网址

使用包:requests

用requests访问一个网站实例

import requests

header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url = 'https://movie.douban.com/cinema/nowplaying/beijing/'
r = requests.get(url, headers=header)  # 需要添加上述头文件才可以成功连上

print(r)

 结果为 <Response [200]>  就表示正确访问,一些结果的错误代码如下:

如没有使用header,结果就为: <Response [418]>

print(r.text) 获取网页内容

2.2 使用BeatufulSoup解析网页

# 解析网页
from bs4 import BeautifulSoup
soup = BeautifulSoup(r.text, 'lxml')
print(soup)

结果与print(r.text)结果一致 

2.3 获取标签的三种方法

# 找某个标签
print(soup.h1)    # 只能找到一个h1标签
print(soup.find('h1'))  # 只能找到一个h1标签

print(soup.find_all('h1'))   # 找到所有h1标签,并返回列表

结果:

<h1>北京 - 在线购票&amp;影讯</h1>
<h1>北京 - 在线购票&amp;影讯</h1>
[<h1>北京 - 在线购票&amp;影讯</h1>, <h1 class="page-title">电影票 - 北京</h1>] 

3 实现第一个数据爬虫

采集去哪儿网的景点数据,包含200多页,数据量大执行慢的可以少访问一些。

标题
# 实操 获取去哪儿网的景点信息
# https://travel.qunar.com/p-cs299878-shanghai-jingdian-1-1  是第一页的景点,总共提取200页,
# 网址的区别是后面的-1-x

# 获取网页地址
url_list = []
ur = 'https://travel.qunar.com/p-cs299878-shanghai-jingdian-1-'
for i in range(1, 11):
    url_list.append(ur + str(i))
# print(len(url_list))

# 循环遍历网页,提取景点信息
datai = []  # 存放所有景点信息
n = 0
for uri in url_list:    # 获取一个页面
    r = requests.get(uri)  # 请求网页
    soup = BeautifulSoup(r.text, 'lxml')  # 解析网页
    # 获取每页景点的标签ul,通过属性去找到特定的标签,注意查看属性是否唯一
    ul = soup.find('ul',class_="list_item clrfix")
    # 获取每页中单个景点的信息,单景点在li标签中,一页有10个li,遍历获取
    li = ul.find_all('li')

    for l in li:
        dic = {}   # 存放单个景点信息
        dic['景点名称'] = l.find('span', class_="cn_tit").text  # 提取元素(内容)
        dic['攻略数'] = l.find('div', class_="strategy_sum").text
        dic['评论数'] = l.find('div', class_='comment_sum').text
        dic['星级数'] = l.find('span', class_='cur_star').attrs['style']  # 提取属性
        n += 1

    print('成功采集%i条数据' % n)
    datai.append(dic)
print(datai)

结果

4 数据分析师应该学爬虫的什么

 

此课程已经不可看了,也找不到好的类似课程,所以不学了。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tina姐

我就看看有没有会打赏我

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值