目录

Python 爬虫常用代码

web基础:

Request核心代码:

POST相关:

BeautifulSoup:


web基础:

Response Headers中的数据为浏览器向网站所传送的内容,包括浏览器的信息及cookies等。

status:200 正常  418 被发现时爬虫orz

(418时 需要进行包装(User-Agent详见后文))

Request核心代码:

在python3中 urllib 已经与 urllib2库整合,import urllib即可

import urllib.requestresponse = urllib.request.urlopen("http://www.baidu.com")
print(response.read().decode("utf-8"))

decode 可将其解码为便于浏览的文本。

POST相关:

常用post的测试网站:

httpbin.org

post 一些data的测试(使用bytes转为二进制文件)(模拟用户真实登录(cookies))

import urllib.request,urllib.parseif __name__ == '__main__':data = bytes(urllib.parse.urlencode({"hello":"world"}),encoding="utf-8")response = urllib.request.urlopen("http://httpbin.org/post",data = data)print(response.read().decode("utf-8"))

记得使用try...except urllib.error.URLError: 来实现超时的错误处理(常用)

data = bytes(urllib.parse.urlencode({"hello": "world"}), encoding="utf-8")try:req = urllib.request.Request("http://douban.com", data=data, headers=headers, method="POST")response = urllib.request.urlopen(req)print(response.read().decode("utf-8"))except urllib.error.URLError as e:if hasattr(e,"code"):print(e.code)if hasattr(e,"reason"):print(e.reason)

反418操作:(亦是request 和 response结合使用的示例,用request获取 用urlopen打开request实例)

headers = {  #模拟浏览器头部信息 向豆瓣服务器发送消息"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36" #from your browser
}data = bytes(urllib.parse.urlencode({"hello":"world"}),encoding="utf-8")req = urllib.request.Request("http://douban.com",data = data,headers = headers, method = "POST")response = urllib.request.urlopen(req)print(response.read().decode("utf-8"))

BeautifulSoup:

作用:将复杂的HTML文档转换成一个复杂的树形结构,每个节点都是Python对象, 所有对象可归纳为4种

(强大的 搜索html标签及内容的工具,免于繁重的find工作)

--Tag 标签

--NavigableString

--BeautifulSoup

--Comment

基础示例:

from bs4 import BeautifulSoupfile = open("baidu.html","rb")
html = file.read()
bs = BeautifulSoup(html,"html.parser")print(bs.a)# get tag
print(bs.title.string) # get string inside tag
print(bs.a.attrs) # get attrs inside tag

常用搜索函数:

bs.find_all("a") # 完全匹配
bs.find_all(re.compile("a")) # 正则匹配
bs.find_all(id = "head") # 寻找id为head的标签# 方法搜索: 传入一个函数,根据函数的要求来搜索
def rules():return tag.has_attr("name")
bs.find_all(rules)tlist = bs.select('title') # 通过标签来查找
tlist = bs.select('.mnav') # 通过类名来查找(# id)
tlist = bs.select('head > title') # 查找子标签
tlist = bs.select('.manv ~ .bri') # 查找兄弟标签
# 获取该文本的方法
print(tlist[0].get_text())

Python 爬虫常用代码相关推荐

  1. Python爬虫常用代码

    字符串仅保留英文.中文.数字.中文符号.英文符号: import re > 字符串去除转义符 def finstring(string):s = ''.join(re.findall('[\u4 ...

  2. 数据采集与清洗基础习题(二)Python爬虫常用模块,头歌参考答案

    数据采集习题参考答案,会持续更新,点个关注防丢失.为了方便查找,已按照头歌重新排版,朋友们按照头歌所属门类查找实训哦,该篇为Python爬虫常用模块. 创作不易,一键三连给博主一个支持呗. 文章目录 ...

  3. Python爬虫常用的爬虫注意事项及技巧

    Python爬虫常用的爬虫技巧 1.基本抓取网页 2.使用代理IP 3.Cookies处理 4.伪装成浏览器 5.页面解析 6.验证码的处理 7.gzip压缩 8.多线程并发抓取 urllib库为例进 ...

  4. python爬虫入门 - 代码、案例集合

    python爬虫入门 - 代码.案例集合 资源案例 · 统计 · 如下: 10个Python爬虫入门实例 以上就是关于"python爬虫入门 - 代码.案例集合"的全部内容.

  5. Python画图常用代码总结,这20个画图代码现拿现用

    目录 前言 1.散点图 2.带边界的气泡图 3.带线性回归最佳拟合线的散点图 4.抖动图 5.计数图 6.边缘直方图 7.边缘箱形图 9.矩阵图 10.发散型条形图 11.发散型文本 12.发散型包点 ...

  6. python3爬虫项目代码_三个python爬虫项目实例代码

    这篇文章主要介绍了三个python爬虫项目实例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 爬取内涵段子: #encoding=utf-8 i ...

  7. python爬虫学习代码

    最近刚学完一点Python分布爬虫,先贴上练习用的代码Python爬虫入门代码,过段时间整理笔记.

  8. python list find_一篇文章带你了解Python爬虫常用选择器

    原创 麦自香 Python爬虫案例 当我们初学爬虫的时候,我们都会选择一些最基本的网站,往往不带任何反爬措施.比如某个博客站点,我们要爬全站的话,就顺着列表页爬到文章页,再把文章的时间.作者.正文等信 ...

  9. python爬虫入门代码-Python爬虫入门

    原标题:python爬虫入门 基础知识 HTTP协议 我们浏览网页的浏览器和手机应用客户端与服务器通信几乎都是基于HTTP协议,而爬虫可以看作是一个另类的客户端,它把自己伪装成浏览器或者手机应用客户端 ...

  10. 爬虫基础(三)——python爬虫常用模块

    3.1python网络爬虫技术核心 3.1.1 python网络爬虫实现原理 第一步:使用python的网络模块(比如urblib2.httplib.requests等)模拟浏览器向服务器发送正常的H ...

最新文章

  1. AI产品之路:神经元与神经网络
  2. 研修项目文件丢失的处理思路
  3. 无序列表属性 隐藏方式 JS简介
  4. ubuntu下网页显示乱码的解决方法
  5. Android O: View的绘制流程(三):布局和绘制
  6. 如何招聘一个合格的程序员?
  7. 【POJ - 3037】Skiing (Dijkstra算法)
  8. 绩效管理KPI指标体系设计:142页KPI设计思路与实施实践
  9. 跨境电商独立站建站优化清单
  10. stderr和stdout详细解说
  11. 浏览文件神器!且可以计算所有文件代码的行数!
  12. MVC---------ViewBag
  13. 香港理工大学ASSIST2011会议(2011-09-30)
  14. 关于第十届省赛失败的总结
  15. gauscoor软件怎么用_比对软件STAR的简单使用
  16. arduino蓝牙模块1
  17. NBIOT工作模式详解(BC26模组)
  18. NLP-自然语言处理
  19. 算法:(七)模拟算法
  20. 2021vue面试题+答案

热门文章

  1. wps 函数android,安卓版WPS教程:用ABS函数计算营收差额
  2. eplan步进电机_数控床子里电机用步进电机好还是伺服电机好?-工业支持中心-西门子中国...
  3. python 简易计算器
  4. python手写计算器
  5. Oracle学习方法
  6. 计算机二级c语言程序设计答题流程,计算机二级C语言上机考试操作步骤及流程.doc...
  7. html编写回到顶部,html回到顶部代码
  8. 2008年管理软件行业的七大趋势预测
  9. 中国建设银行-跨境易支付
  10. Windows网络编程(基础篇1)