初识Python和使用Python爬虫
- 网络应用:包括网站、后台服务等等,构建网络应用一般使用Django 或者 Flask这俩相对流行的框架。
- 数据科学:包括机器学习(scikit-learn和TensorFlow)、数据分析和数据可视化(Matplotlib)
- 脚本、爬虫
- 请求发送: 确定需要爬取数据的目标url以及发送请求(request)时所需要携带的数据和各种HTTP头部信息 (如user-agent, proxy IP, cookie)。发送请求时我们最常用的有python 3自带的urllib库和需要安装的第三方包requests库。
- 数据解析: 对返回的数据(response)进行解析,提取我们所需要的信息。常用的数据解析的库有python自带的html.parser, beautifulsoup(第三方库)、lxml(第三方库)。
- 数据存储: 对第2步提取的数据我们有时候需要对其进行清洗,有时会直接存入数据库,写入文件或缓存。
# 使用RequestsCookieJar来构建cookie
cookie_jar = RequestsCookieJar()
for k, v in d.items():
cookie_jar.set(k, v)
# 创建headers
user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko'
header = {
"User-Agent": user_agent
} 1.使用requests创建请求
req = requests.get(url, headers=header, cookies=cookie_jar)
2.使用beautifulsoup来解析请求到的数据
if req.status_code == 200:
soup = bs(str(req.content, 'GBK'), 'html.parser')
3.soup中保存了方便解析的请求到的数据
result = soup.find_all('div', class_='paper-bt')[0].get_text()
4.对抓取到的数据保存或者输出
print(result)








- / 表示选取直接子节点
- // 表示选取所有子孙节点
- . 选取当前节点
- .. 选取当前结点的父节点
- @ 选取属性






- 获取直接子节点:contents,例如我想获取p标签的直接子节点:soup.p.contents即可
- 获取子孙节点:descendants,例如我想获取p标签的子孙节点:soup.p.descendants即可
- 获取父节点:parent属性,例如我想获取p标签的父节点:soup.p.parent即可
- 获取祖先节点:parents属性,例如我想获取p标签的祖先节点:soup.p.parents即可
- 获取兄弟节点:next_sibling,previous_sibling,next_siblings,previous_siblings分别为下一个兄弟节点,上一个兄弟节点,上面所有的兄弟节点,下面所有的兄弟节点。
- 如果我们想要获取ul可以这样写:soup.find_all(name='ul')
- 如果我们想要获取id为id1属性可以这样写:soup.find_all(arrts[id='id1'])
- 如果我们想要获取class为class1属性可以这样写:soup.find_all(arrts[class_='class1'])因为class有特殊意义,所以我们获取class的时候价格_即可
- 如果我们想要获取文本值可以这样写:soup.find_all(text=re.compile(''))匹配text需要用到正则,匹配你想要的text值
- find()只返回一个值,匹配到符合要求的第一个值。用法和上面的方法一样

初识Python和使用Python爬虫的更多相关文章
- Python初学者之网络爬虫(二)
声明:本文内容和涉及到的代码仅限于个人学习,任何人不得作为商业用途.转载请附上此文章地址 本篇文章Python初学者之网络爬虫的继续,最新代码已提交到https://github.com/octans ...
- 智普教育Python培训之Python开发视频教程网络爬虫实战项目
网络爬虫项目实训:看我如何下载韩寒博客文章Python视频 01.mp4 网络爬虫项目实训:看我如何下载韩寒博客文章Python视频 02.mp4 网络爬虫项目实训:看我如何下载韩寒博客文章Pytho ...
- 【Python】:简单爬虫作业
使用Python编写的图片爬虫作业: #coding=utf-8 import urllib import re def getPage(url): #urllib.urlopen(url[, dat ...
- 使用python/casperjs编写终极爬虫-客户端App的抓取-ZOL技术频道
使用python/casperjs编写终极爬虫-客户端App的抓取-ZOL技术频道 使用python/casperjs编写终极爬虫-客户端App的抓取
- [Python学习] 简单网络爬虫抓取博客文章及思想介绍
前面一直强调Python运用到网络爬虫方面很有效,这篇文章也是结合学习的Python视频知识及我研究生数据挖掘方向的知识.从而简介下Python是怎样爬去网络数据的,文章知识很easy ...
- 洗礼灵魂,修炼python(70)--爬虫篇—补充知识:json模块
在前面的某一篇中,说完了pickle,但我相信好多朋友都不懂到底有什么用,那么到了爬虫篇,它就大有用处了,而和pickle很相似的就是JSON模块 JSON 1.简介 1)JSON(JavaScrip ...
- 洗礼灵魂,修炼python(69)--爬虫篇—番外篇之feedparser模块
feedparser模块 1.简介 feedparser是一个Python的Feed解析库,可以处理RSS ,CDF,Atom .使用它我们可从任何 RSS 或 Atom 订阅源得到标题.链接和文章的 ...
- 洗礼灵魂,修炼python(52)--爬虫篇—【转载】爬虫工具列表
与爬虫相关的常用模块列表. 原文出处:传送门链接 网络 通用 urllib -网络库(stdlib). requests -网络库. grab – 网络库(基于pycurl). pycurl – 网络 ...
- 洗礼灵魂,修炼python(50)--爬虫篇—基础认识
爬虫 1.什么是爬虫 爬虫就是昆虫一类的其中一个爬行物种,擅长爬行. 哈哈,开玩笑,在编程里,爬虫其实全名叫网络爬虫,网络爬虫,又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者 ...
- 使用Python + Selenium打造浏览器爬虫
Selenium 是一款强大的基于浏览器的开源自动化测试工具,最初由 Jason Huggins 于 2004 年在 ThoughtWorks 发起,它提供了一套简单易用的 API,模拟浏览器的各种操 ...
随机推荐
- gRPC Learning Notes
简介 更多内容参考:https://www.grpc.io/docs/guides/ gRPC 是一个高性能.开源和通用的 RPC 框架,面向移动和 HTTP/2 设计.目前提供 C.Java 和 G ...
- [Python] [转] python.exe和pythonw.exe的区别(区分.py、.pyw、.pyc文件)
Windows系统搭建好Python的环境后,进入Python的安装目录,大家会发现目录中有python.exe和pythonw.exe两个程序.如下图所示: 它们到底有什么区别和联系呢? 概括说明一 ...
- 树莓派实现SIM868 ppp拨号上网
环境:raspbian-stretch(2018-06-27) 树莓派:3代B型 SIM868模块具有GPRS数据传输功能(2G网络),但是模块是通过AT指令控制的,在树莓派上用AT指令控制会非常不方 ...
- EVE扩大虚拟内存
1.首先通过df -lh命令查看虚拟机的根目录下是否有足够大的硬盘空间. root@eve-ng:~# df -hFilesystem Size Used Av ...
- 【C语言】函数调用的简单例子
#include<stdio.h> void p1() { printf("******************\n"); } void p2() { printf(& ...
- Shiro入门学习之shi.ini实现认证及源码分析(二)
一.Shiro.ini文件 1.文件说明 ①ini(InitializationFile)初始文件:Window系统文件扩展名 ②Shiro使用时可以连接数据库,也可以不连接数据库(可以使用shiro ...
- PLSQL用户登录时报错: no listener
报错原因是因为服务没有开启,找到oracle的相应服务开启即可.
- ntpdate 设置时区(注意本地时区要设置正确)
修改timezone sudo cp -a /usr/share/zoneinfo/Etc/GMT-8 /etc/localtime date -R == 展示当前的timezone ntpda ...
- Java面向对象编程 -1.5
对象引用传递分析 类本身属于引用传递类型,既然是引用传递类型,那么就牵扯到内存的引用传递 所谓的引用传递的本质:同一块堆内存空间可以被不同的栈内存所指向,也可以更换指向. class Person{ ...
- 201771010131-王之泰 实验一 软件工程准备—<通读《现代软件工程—构建之法》后所思所想>周学习总结
项目 内容 作业所属课程 https://www.cnblogs.com/nwnu-daizh/ 作业要求 https://www.cnblogs.com/nwnu-daizh/p/12369881. ...