对于一些简单的爬虫,python(基于python3)有更好的第三方库来实现它,且容易上手。

1,urllib.request

urllib.request最常见的用法是直接使用urllib.request.urlopen()来发起请求,但通常这样是不规范的

一个完整的请求还应该包括headers这样的信息传递,可以这样实现

import urllib.request

headers={"xxx":"xxx"}

url="http://xxxxxxx"

dic={"xx":"xx","xx":"xx"}

data=urllib.parse.urlencode(data).encode('utf-8') #使用utf-8编码,将其转换为字节流,来提交字典参数

req=urllib.request.Request(url=url,headers=headers,method="post",data=data)

page=urllib.request.urlopen(req)

html=page.read().decode('utf-8')

通常防止爬虫被检测,我们需要规定headers,伪造爬虫头部信息,但此方法一般用途不大。

2,BeautifulSoup(美味汤)

beautifulsoup的功能很强大,利用它我们可以实现网页的轻松解析,省掉写很多正则表达式的麻烦。

它拥有几个强大的解析库,包括 内置的html解析器,lxml,html5lib。

一般默认的是html解析器 html.parser

最好的大概是lxml了

用法:

soup=BeautifulSoup(html,"html.parser")

################

soup=BeautifulSoup(html,"lxml")

###############3

soup=BeautifulSoup(html,"html5lib")

展现beautifulsoup强大的标签选择功能

获取某个html标签的属性:

print(soup.p['name'])

获取某个标签的内容:

print(soup.p.string)

获取某个标签内的所有内容,存入列表中

plist=soup.p.contents

find_all()标签选择器

例如我们要找到id=content 的div标签的内容

content=soup.find_all("div",{"id":"content"})

print(content)

select() --css选择器,包括(id值,class值,html标签等)

text=soup.select('.test_class')

这个几个选择器很有用,省去了编写正则表达式的繁琐。

python爬虫常用模块介绍(1)_python爬虫常用模块介绍(1)相关推荐

  1. python的scrapy框架的安装_Python爬虫基础(四)--Scrapy框架的安装及介绍

    Scrapy框架的介绍 安装: pip3 install Scrapy 安装测试: cmd命令行界面,输入:scrapy -h 框架安装完成: scrapy框架: 分为五个模块+两个中间件(5+2结构 ...

  2. python爬虫用到的技术_python爬虫技术的选择

    本篇文章不是入门帖,需要对python和爬虫领域有所了解. 爬虫又是另外一个领域,涉及的知识点比较多,不仅要熟悉web开发,有时候还涉及机器学习等知识,不过在python里一切变的简单,有许多第三方库 ...

  3. python爬虫需要对象编程吗_Python爬虫基础知识及前期准备

    学习爬虫有一小段时间了,于是决定把自己学爬虫时所学的,写过的代码以及看过的文档记录下来,权当小结.第一次写这些,如果有错误,请多指教. 首先我们需要了解一下什么是爬虫. 根据百度百科上给出的定义,&q ...

  4. python爬虫入门实战争胜法_Python爬虫入门实战之猫眼电影数据抓取(理论篇)

    前言 本文可能篇幅较长,但是绝对干货满满,提供了大量的学习资源和途径.达到让读者独立自主的编写基础网络爬虫的目标,这也是本文的主旨,输出有价值能够真正帮助到读者的知识,即授人以鱼不如授人以渔,让我们直 ...

  5. python爬虫资源路径报错_python爬虫

    一.网络爬虫介绍 网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成. 例如,百度.google搜索某关键字时,就是爬取整个互联网上的相关资源,给呈现出来. 实际爬 ...

  6. python爬虫用多线程还是多进程_python爬虫之多线程、多进程爬虫

    多线程对爬虫的效率提高是非凡的,当我们使用python的多线程有几点是需要我们知道的: countdown是一个计数的方法,正常执行它,我们一般使用countdown(10),就可以达到执行的目的,当 ...

  7. python爬取网页数据软件_python爬虫入门10分钟爬取一个网站

    一.基础入门 1.1什么是爬虫 爬虫(spider,又网络爬虫),是指向网站/网络发起请求,获取资源后分析并提取有用数据的程序. 从技术层面来说就是 通过程序模拟浏览器请求站点的行为,把站点返回的HT ...

  8. python selenium 进入新标签页_python 爬虫之selenium可视化爬虫

    文章目录 前文回顾 快速入门 元素定位 页面操作 等待方式 扩展程序加载 点击此处,获取海量Python学习资料! 之所以把selenium爬虫称之为可视化爬虫 主要是相较于前面所提到的几种网页解析的 ...

  9. python爬虫十二种方法_Python爬虫的N种姿势

    问题的由来 前几天,在微信公众号(Python爬虫及算法)上有个人问了笔者一个问题,如何利用爬虫来实现如下的需求,需要爬取的网页如下(网址为:https://www.wikidata.org/w/in ...

  10. python 模拟用户点击浏览器_python爬虫之selenium模拟浏览器

    1.前言 之前在异步加载(AJAX)网页爬虫的时候提到过,爬取这种ajax技术的网页有两种办法:一种就是通过浏览器审查元素找到包含所需信息网页的真实地址,另一种就是通过selenium模拟浏览器的方法 ...

最新文章

  1. 拥有至高无上的特权 使用system账户
  2. 论文工具 | 翻译神器
  3. halcon圆环完整度检测
  4. Python自动化之高级语法单例模式
  5. JPA getValidationMode()
  6. 抛弃jQuery 深入原生的JavaScript
  7. Atitit 边缘检测原理attilax总结
  8. FTP文件传输工具(三)
  9. 金蝶计算机会计实验报告总结,会计实训总结(精选5篇)
  10. jsp代码编写简单的BBS论坛项目的总结
  11. 成都青白江的羽毛球场地
  12. matlab子函数中使用全局变量的使用方法
  13. android 4.0.3固件,OPPO Find3 android 4.0固件正式发布
  14. 设计一个以1秒频率闪烁的LED灯(亮灭各500ms)
  15. SSM实现物流管理系统快递
  16. 财务复式记账和平行登记有什么区别
  17. [原创]从程序员角度分析安徽电信HTTP劫持的无耻行径 – 之深度分析
  18. LIS系统通讯程序原理与实现
  19. 基于javaweb心理咨询与诊断平台系统设计
  20. 墨尔本大学计算机研究生专业学费,墨尔本大学国际研究生专业学费

热门文章

  1. 《计算机系统:系统架构与操作系统的高度集成》——1.5 计算机硬件的演化...
  2. 基于PhalApi的Redis拓展
  3. PHP数据结构之实现链式二叉树与遍历
  4. jsp+servlet+mysql的简单使用
  5. 10月17号PC端云音乐项目总结
  6. 分享几个vue后台模板
  7. golang 获取当前年月日
  8. No package ‘libpeas-1.0‘ found/No package ‘libpeas-gtk-1.0‘
  9. 软件基本功:一行70限制早已无效,150起步
  10. CSDN排名规则变化略谈