爬虫基础

注:本文代码无法直接复现 建议看思路具体亲自去尝试写一下 后面争取更新一个直接可复用的代码案例

# 爬虫:按照一定的规则  自动的   抓取 万维网信息  程序  脚本
# 如果  用python 可以做到 模仿 人类发送请求
# 如果 服务器 接收后  骗过 浏览器  让他以为是一个真实的用户
# 服务器 返回后 我们只要  接收他的返回值
# 然后 自己解析
# 把解析后 有用的信息 留下 保存
# 重复动作

#第一种方法:(还可以用requests)
from urllib import request

# 1 发送请求
response = request.urlopen(url='http://www.baidu.com')
# 我们发现 response 对象我们不认识 我们就调用了一个read函数

# 2 接收响应 解析响应内容
html = response.read().decode('utf-8')
# print(h)  # <http.client.HTTPResponse object at 0x0000000002A08FD0>

# 解析 源代码
# re ——正则表达式  最不好学会 或者 是最不好用   速度 最快
# bs4 ——  最容易 使用  速度 慢  需要 安装
# 解析

from bs4 import BeautifulSoup  # 这是导入 bs

# 参数1  接收一个等待被解析的对象
# 参数2 接收一个解析器
# html.parser:这个 是python自带的一个解析器  可以直接写它的名字
# 或者 可以传入一个 lxml  第三方的模块
  soup = BeautifulSoup(h, 'lxml')
  
# 这个是个查找的方法 可以 查找"标签"
  title = soup.select('title')
  div = soup.select('div')
  print(title[0])  # 返回值是个"列表"
  print(div[1])
  
# 有用的内容 保存下来
# 第一个参数 :我们要写入的的文件  我们想往哪里写
# 第二个参数: w是一种 写入的模式 先判断 是否有这个文件 如果有 就清除文件内容 然后 写入
# 如果没有这个文件  就先创建 然后 写入内容
#   a 追加模式 先判断 是否有这个文件 如果有 就打开这个文件后 开始追加内容
# 如果没有 就创建文件 然后 写入内容
# r  读取 只读模式 如果有 就读取  如果没有 就报错了
f = open('baidu.html', 'w', encoding='utf-8')
f.write(html)  # 把我们 爬取到的html  网页的源代码 写入进去 baidu.html的文件中
f.close()

案例二:
from bs4 import BeautifulSoup
 from urllib import request
 url = 'http://quotes.toscrape.com/' #练习爬虫的网站
 response = request.urlopen(url)

# html = response.read().decode()# 这个decode有个默认值是utf-8
# print(html)

# 已存在名言.html后:
f = open('名言.html', 'r', encoding='utf-8')
html = f.read()
# f.write(html)
# f.close()
# # print(html)

soup = BeautifulSoup(html, 'lxml')
span = soup.select('a')  #
# 其实 在select中还可以 输入 一些其他的内容
# class='text'   那么说 我们就可以直接写  '.text'(css用法)
#并列的class name用空格隔开
# id='tag'或直接 '#tag'
# 用  get方法 获取 “属性”

print(len(span))  # 这里用 span这个标签名 拿到了 32个span的内容但是 我们一共有多少个?
for i in span:
    print(i.get('href'))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值