python爬虫入门(一)

使用requests 库获取网站html信息

import requests
response = requests.get("https://jingyan.baidu.com/article/17bd8e52c76b2bc5ab2bb8a2.html#:~:text=1.%E6%89%93%E5%BC%80%E6%B5%8F%E8%A7%88%E5%99%A8F12%202.%E6%89%BE%E5%88%B0headers%E9%87%8C%E9%9D%A2%E7%9A%84cookie,3.%E5%A6%82%E6%9E%9C%E8%A6%81%E6%89%BE%E5%88%B0%E5%AF%B9%E5%BA%94%E7%9A%84%E7%82%B9%E5%87%BBcookie%204.%E8%BF%9E%E7%BB%AD%E4%B8%89%E6%AC%A1%E7%82%B9%E5%87%BB%E5%8F%B3%E9%94%AE%E5%A4%8D%E5%88%B6")
print(response) # <Response [200]>  返回 Response类型实例
print(response.status_code)  # 200 返回状态码# 用状态码判断是否获取成功
if response.status_code >= 200 and response.status_code < 400:... #  获取响应主体内容
elif response.status_code >= 400 and response.status_code < 500:print("request failed for the client has error客户端错误")
elif response.status_code >= 500:print("request failed for the server has error服务端错误")if response.ok:print(response.text) # 返回网页源码...  # 获取响应主体内容
else:print("request failed")# 直接使用以下代码,出现“418”错误;因为该网站想过滤掉爬虫程序,只想服务正常用户;
import requests
response = requests.get("https://movie.douban.com/top250")
print(response) # <Response [200]>  返回 Response类型实例
print(response.text)  # 返回网页源码# 伪装,增加headers,具体可以从F12开发者工具的 -> network -> user-agent里面寻找
import requests
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36"
}
response = requests.get("https://movie.douban.com/top250", headers=headers)
print(response) # <Response [200]>  返回 Response类型实例
print(response.text)  # 返回网页源码

HTML简单结构入门

HTML  定义网页的结构和信息,文件名为xxx.html,用浏览器打开
CSS  定义网页样式
JavaScript 定义用户和网页的交互逻辑<!DOCTYPE HTML>
<html><body><h1>title</h1><p>some texts</p></body>
</html>标题
<h1></h1>
<h2></h2>
<h3></h3>
<h4></h4>
<h5></h5>
<h6></h6>文本段落
<p></p>
强制换行 <br>
加粗 <b></b>
斜体 <i></i>
下划线 <u></u>
图片 <img src="..." width="" height="">
链接 <a href="https://..." target="_self">text</a> (target表示打开的方式,当前页面跳转,新页面跳转等)
容器 块级元素-div-独占一行,span为内嵌元素
<div>...
</div><span>...
</span>列表 有序列表ol,无序列表ul
<ol><li>chinese</li><li>math</li>
</ol><ul><li>chinese</li><li>math</li>
</ul>表格 td数据,
<table border=“1”> 表格属性之一,显示边框
<table><table border=“1”><thead><tr><td>tableheader1</td><td>tableheader2</td></tr></thead><tbody><tr><td>111</td><td>2222</td></tr><tr><td>333</td><td>444</td></tr></tbody>
</table>class属性 -- 帮助分类
<p class="content">给岁月以文明</p>
<p class="content">而不是给文明以岁月</p>
<p class="review">五星好评!</p>

在这里插入图片描述

爬取网页中的书的价格和名称

# 解析,找网页中商品的price和书名
from bs4 import BeautifulSoup
import requests
content = requests.get("http://books.toscrape.com/").text()
soup = BeautifulSoup(content, "html.parser")  # 返回树状解析结构all_prices = soup.findAll("p", attrs={"class":"price_color"})
for price in all_prices:  print(prices.string[2:])all_titles = soup.findAll("h3")
for title in all_titles:all_links = title.findAll("a")  # 寻找所有a# all_links = title.find("a")   # 寻找第一个afor link in all_links:print(link.string)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/464284.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浏览器F12调试

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 例如&#xff1a;第一章 Python 机器学习入门之pandas的使用 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目…

计算机二级C语言备考学习记录

一、C语言程序的结构 1.程序的构成&#xff0c;main函数和其他函数。 程序是由main函数和其他函数构成main作为主函数&#xff0c;一个C程序里只有一个main函数其他函数可以分为系统函数和用户函数&#xff0c;系统函数为编译系统提供&#xff0c;用户函数由用户自行编写 2.…

【Linux】学习-进程信号

进程信号 信号入门 生活角度的信号 你在网上买了很多件商品,再等待不同商品快递的到来。但即便快递没有到来,你也知道快递来临时,你该怎么处理快递。也就是你能“识别快递”,也就是你意识里是知道如果这时候快递员送来了你的包裹,你知道该如何处理这些包裹当快递员到了你…

软考 系统分析师系列知识点之信息系统战略规划方法(5)

接前一篇文章&#xff1a;软考 系统分析师系列知识点之信息系统战略规划方法&#xff08;4&#xff09; 所属章节&#xff1a; 第7章. 企业信息化战略与实施 第4节. 信息系统战略规划方法 7.4.3 战略集合转化法 战略目标集合转化法&#xff08;Strategy Set Transformation&a…

day37 闭包、变量提升

目录 闭包变量提升函数提升 闭包 闭包&#xff08;closure&#xff09;是一个函数以及其捆绑的周边环境状态&#xff08;lexical environment&#xff0c;词法环境&#xff09;的引用的组合。换而言之&#xff0c;闭包让开发者可以从内部函数访问外部函数的作用域。在 JavaScr…

Oracle数据字典学习1

之前查看了几个用户的默认表空间&#xff0c;是从user_users来查看的&#xff1b; 根据资料&#xff1b; ORACLE中数据字典视图分为3大类,用前缀区别&#xff0c;分别为&#xff1a;USER&#xff0c;ALL 和 DBA&#xff1b; 许多数据字典视图包含相似的信息&#xff1b; USER_…

【PyQt】10 QLineEdit

文章目录 前言一、回显模式&#xff08;EchoMode&#xff09;1.1 四种回显模式1.2 代码展示运行结果 二、校验器2.1 代码2.2 运行结果 三、通过掩码限制输入3.1 代码3.2 运行结果 总结 前言 1、QLineEdit 可以输入单行文字 2、回显模式 3、校验器 4、掩码输入 一、回显模式&am…

Blazor SSR/WASM IDS/OIDC 单点登录授权实例3-服务端管理组件

目录: OpenID 与 OAuth2 基础知识Blazor wasm Google 登录Blazor wasm Gitee 码云登录Blazor SSR/WASM IDS/OIDC 单点登录授权实例1-建立和配置IDS身份验证服务Blazor SSR/WASM IDS/OIDC 单点登录授权实例2-登录信息组件wasmBlazor SSR/WASM IDS/OIDC 单点登录授权实例3-服务端…

黄金交易策略(Nerve Nnife.mql4):1秒救地球的第六单

一轮趋势做单&#xff0c;正常情况是5单便可以完成一轮盈利。但当开仓后快速追加5单也无法止盈的话&#xff0c;我们得找准极其苛刻的条件开出第6单&#xff0c;并指望完成利润覆盖。代码如下&#xff1a; if(count > 5 && count < 10 && isDown(small_…

《CSS 简易速速上手小册》第9章:CSS 最佳实践(2024 最新版)

文章目录 9.1 维护大型项目的 CSS9.1.1 基础知识9.1.2 重点案例&#xff1a;构建一个可复用的 UI 组件库9.1.3 拓展案例 1&#xff1a;优化现有项目的 CSS 结构9.1.4 拓展案例 2&#xff1a;实现主题切换功能 9.2 BEM、OOCSS 和 SMACSS 方法论9.2.1 基础知识9.2.2 重点案例&…

推荐系统|召回04_离散特征处理

离散特征处理 离散特征是什么 怎么处理离散特征 One-hot编码 Embedding嵌入 从one-hot到Embedding&#xff0c;已经节省了很多的存储空间&#xff0c;但当数据量大的时候&#xff0c;还是占空间&#xff0c;所以工业界仍会对Embedding进行优化 而一个物品所对应的Embedding参数…

ESP8266-01S模块连接服务器(ONENET)

ESP8266-01S模块连接服务器&#xff08;ONENET&#xff09; 固件烧录通过http协议连接onenet云平台 固件烧录 一般在esp8266到手之后会进行测试&#xff0c;以确保能用&#xff0c;该模块出厂时默认自带出厂固件的&#xff0c;但如果进行了开发即下载了自己写的程序&#xff0…