-
2021-09-11 14:08:31
一、工具:
pycharm,python3.7
二、爬虫的过程:
1.发起请求:通过HTTP库向目标站点发起请求,也就是发送一个Request,请求可以包含额外的header等信息,等待服务器响应
2.获取响应内容:如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型
3.解析内容:得到的内容可能是HTML,可以用正则表达式,页面解析库进行解析,可能是Json,可以直接转换为Json对象解析,可能是二进制数据,可以做保存或者进一步的处理
4.保存数据:保存形式多样,可以存为文本,也可以保存到数据库,或者保存特定格式的文件
三、简单案例:
import requests req=requests.get('https://www.csdn.net') #请求CSDN首页 print(req) #打印请求结果的状态码 print(req.content) #打印请求到的网页源码,content返回的是bytes型也就是二进制的数据。 print(req.text) #text返回的是Unicode型的数据。
四、解析源码并保存数据:
from bs4 import BeautifulSoup import requests req=requests.get('https://www.csdn.net') #请求CSDN首页 bsobj=BeautifulSoup(req.content,'lxml') #将网页源码构造成BeautifulSoup对象,方便操作 a_list=bsobj.find_all('a') #获取网页中的所有a标签对象 text='' # 创建一个空字符串 for a in a_list: href=a.get('href') #获取a标签对象的href属性,即这个对象指向的链接地址 text+=href+'\n' #加入到字符串中,并换行 with open('url.txt','w') as f: #在当前路径下,以写的方式打开一个名为'url.txt',如果不存在则创建 f.write(text) #将text里的数据写入到文本中 print("完成")
结果:
更多相关内容 -
Python爬虫实战案例源码-批量爬取今日头条街拍美图
2021-07-14 14:59:58Python爬虫实战案例源码-批量爬取今日头条街拍美图 -
python爬虫代码示例分享
2020-11-24 00:27:51这篇文章主要介绍了三个python爬虫项目实例代码,使用了urllib2库,文中示例代码非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。python爬虫代码示例分享一、爬取故事段子:推荐学习...这篇文章主要介绍了三个python爬虫项目实例代码,使用了urllib2库,文中示例代码非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。
python爬虫代码示例分享
一、爬取故事段子:推荐学习:Python视频教程
注:部分代码无法正常运行,但仍有一定的参考价值。#encoding=utf-8
import urllib2
import re
class neihanba():
def spider(self):
'''
爬虫的主调度器
'''
isflow=True#判断是否进行下一页
page=1
while isflow:
url="http://www.neihanpa.com/article/list_5_"+str(page)+".html"
html=self.load(url)
self.deal(html,page)
panduan=raw_input("是否继续(y/n)!")
if panduan=="y":
isflow=True
page+=1
else:
isflow=False
def load(self,url):
'''
针对url地址进行全部爬去
:param url: url地址
:return: 返回爬去的内容
'''
header = {
"User-Agent": " Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36"
}
request = urllib2.Request(url, headers=header)
response = urllib2.urlopen(request)
html = response.read()
return html
def deal(self,html,page):
'''
对之前爬去的内容进行正则匹配,匹配出标题和正文内容
:param html:之前爬去的内容
:param page: 正在爬去的页码
'''
parrten=re.compile('
(.*?)',re.S)titleList=parrten.findall(html)
for title in titleList:
parrten1=re.compile('(.*)')
ti1=parrten1.findall(title)
parrten2=re.compile('
(.*?)',re.S)til2=parrten2.findall(title)
for t in ti1:
tr=t.replace("","").replace("","")
self.writeData(tr,page)
for t in til2:
tr=t.replace("
","").replace("
","").replace("
","").replace("
","").replace("&ldquo","\"").replace("&rdquo","\"")self.writeData(tr,page)
def writeData(self,context,page):
'''
将最终爬去的内容写入文件中
:param context: 匹配好的内容
:param page: 当前爬去的页码数
'''
fileName = "di" + str(page) + "yehtml.txt"
with open(fileName, "a") as file:
file.writelines(context + "\n")
if __name__ == '__main__':
n=neihanba()
n.spider()
二、爬取智联:#encoding=utf-8
import urllib
import urllib2
import re
class zhiLian():
def spider(self,position,workPlace):
'''
爬虫的主调度器
:param position: 职位
:param workPlace: 工作地点
'''
url="http://sou.zhaopin.com/jobs/searchresult.ashx?"
url+=urllib.urlencode({"jl":workPlace})
url+="&"
url+=urllib.urlencode({"kw":position})
isflow=True#是否进行下一页的爬去
page=1
while isflow:
url+="&"+str(page)
html=self.load(url)
self.deal1(html,page)
panduan = raw_input("是否继续爬虫下一页(y/n)!")
if panduan == "y":
isflow = True
page += 1
else:
isflow = False
def load(self,url):
'''
针对url地址进行全部爬去
:param url: url地址
:return: 返回爬去的内容
'''
header = {
"User-Agent": " Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36"
}
request = urllib2.Request(url, headers=header)
response = urllib2.urlopen(request)
html = response.read()
return html
def deal1(self,html,page):
'''
对之前爬去的内容进行正则匹配,匹配职位所对应的链接
:param html:之前爬去的内容
:param page: 正在爬去的页码
'''
parrten=re.compile('.*?',re.S)
til=parrten.findall(html)#爬去链接
for t in til:
self.deal2(t,page)
def deal2(self,t,page):
'''
进行二次爬虫,然后在新的页面中对公司、薪资、工作经验进行匹配
:param t: url地址
:param page: 当前匹配的页数
'''
html=self.load(t)#返回二次爬虫的内容
parrten1=re.compile('(.*?)\s+.*?',re.S)
parrten2=re.compile('
职位月薪: (.*?) .*?',re.S)parrent3=re.compile('
工作经验: (.*?)',re.S)til1=parrten1.findall(html)
til2=parrten2.findall(html)
til3=parrent3.findall(html)
str=""
for t in til1:
t=t.replace('
',"")
str+=t
str+="\t"
for t in til2:
str+=t
str += "\t"
for t in til3:
str+=t
self.writeData(str,page)
def writeData(self,context,page):
'''
将最终爬去的内容写入文件中
:param context: 匹配好的内容
:param page: 当前爬去的页码数
'''
fileName = "di" + str(page) + "yehtml.txt"
with open(fileName, "a") as file:
file.writelines(context + "\n")
if __name__ == '__main__':
position=raw_input("请输入职位:")
workPlace=raw_input("请输入工作地点:")
z=zhiLian()
z.spider(position,workPlace)
三、爬取贴吧:#encoding=utf-8
import urllib
import urllib2
import re
class teiba():
def spider(self,name,startPage,endPage):
url="http://tieba.baidu.com/f?ie=utf-8&"
url+=urllib.urlencode({"kw":name})
for page in range(startPage,endPage+1):
pn=50*(page-1)
urlFull=url+"&"+urllib.urlencode({"pn":pn})
html=self.loadPage(url)
self.dealPage(html,page)
def loadPage(self,url):
header={
"User-Agent":" Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.79 Safari/537.36"
}
request=urllib2.Request(url,headers=header)
response=urllib2.urlopen(request)
html=response.read()
return html
def dealPage(self,html,page):
partten=re.compile(r'(.*?)',re.S)
titleList=partten.findall(html)
rstr=r'#(.*?)#'
for title in titleList:
title=re.sub(rstr,"",title)
self.writePage(title,page)
def writePage(self,context,page):
fileName="di"+str(page)+"yehtml.txt"
with open(fileName,"a") as file:
file.writelines(context+"\n")
if __name__ == '__main__':
name=raw_input("请输入贴吧名:")
startPage=raw_input("请输入起始页:")
endPage=raw_input("请输入终止页:")
t=teiba()
t.spider(name,int(startPage),int(endPage))
更多相关教程,请关注Python教程栏目。
以上就是python爬虫代码示例分享的详细内容,更多请关注php中文网其它相关文章!
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
-
python爬虫小实例
2020-12-21 17:13:15Python爬虫入门小程序 博主作为一个刚入门Python爬虫的新人,研究了一阵后,为了检验自己所以写了一个Python爬虫小程序,目的是为了爬取某网站的绅士图片并下载保存到本地。 思路 先打开目标网站的网址,先对其进行... -
python爬虫100例教程+源代码【基础案例】
2021-10-12 09:45:59python爬虫100例教程+源代码【基础案例】 python爬虫100例源代码、python基础案例100 Python基础案例 入门级别 -
python爬虫案例网易云热评源码.zip
2021-12-25 13:09:07python爬虫案例网易云热评源码 -
python爬虫并制作足球可视化图表(含源码)
2022-04-21 21:36:29python爬取c罗(也可爬取其他运动员)数据,绘制数据散点图,加上文本和图片信息生成可视化图表。 -
python爬虫超简单实例
2018-03-31 16:27:54基于实际的工作需要,写了个简单例子,供参考,如果有疑问的可以留言 -
技术更新,战术升级!Python爬虫案例实战从零开始一站通.rar
2020-09-08 14:33:02Python爬虫案例实战从零开始一站通;20章,共计129节,完整版,附源码;第一章:零基础入门Python网络爬虫 第二章、Urllib模块基础与糗事百科爬虫项目实战 第三章、淘宝商品图片爬虫开发实战 第四章、 用户代理池与... -
完整版Python网络爬虫之Scrapy爬虫框架使用案例教程含源代码共18页.pdf
2021-06-19 20:22:42Scratch,是抓取的意思,这个Python的爬虫框架叫Scrapy,大概也是这个意思吧,就叫它:小刮刮吧。 小刮刮是一个为遍历爬行网站、分解获取数据而设计的应用程序框架,它可以应用在广泛领域:数据挖掘、信息处理和或者... -
一个非常实用的初学者python爬虫案例项目
2020-11-13 15:34:58这是我自己在学习python爬虫之后完成的一个项目,其中遇到过问题,但是都是耐心的一个个去解决了,欢迎想学习python爬虫的朋友一起探讨一起进步 -
python爬虫入门案例,持续更新
2021-10-21 23:03:37十一个python入门爬虫小案例前言爬虫案例聊天没有表情包被嘲讽,程序员直接用python爬取了十万张表情包python爬b站视频 人生苦短 我用pythonPython爬取美女图片 爬虫基础python爬取网易云评论 超简单教程python爬...python入门爬虫小案例汇总
前言
从第一次写爬虫,上了一次热榜,到现在已经陆陆续续写了十一篇爬虫文章了,总体来说收获还是不小的,今天刚好有空,就把这些文章做一下汇总。都是些入门的小案例,有兴趣的兄弟们来看看吧
爬虫案例
舔狗也当的不称职,来让python教教你怎么做舔狗吧 初识selenium
爬取大量舔狗语录,说不定对你有帮助
python爬取英雄联盟手游的全英雄皮肤
简介
如题目所说,爬取所有的英雄和皮肤的图片,一个很简单的教程,来看看吧
聊天没有表情包被嘲讽,程序员直接用python爬取了十万张表情包
简介
对页面进行分析然后获取表情包的图片链接,然后多线程疯狂下载,总共下载十万余张表情包
Python爬取美女图片 爬虫基础
简介
特地说一下,我第一次上热榜的文章,对我来说意义非凡,下载高清图片,兄弟们快来看看呀
python爬取网易云评论 超简单教程
简介
根据一个大佬找出的接口,然后对网易云评论进行爬取然后制作精美云图,非常简单
python爬鱿鱼游戏的评价 看看鱿鱼游戏到底值不值得看 初识selenium
简介
使用selenium对评论进行爬取,自动化工具非常的香,看完了鱿鱼游戏,再来看看评论吧
一分钟学会you-get
简介
一个非常好用的工具,至于干什么的,快来看看吧
python爬取4k小姐姐图片 人生苦短 我用python
简介
真真真4k图片,进来绝对不亏,真4k小姐姐,快来爬取吧
ts视频下载 准备下载视频的你确定不进来看看吗
简介
如果兄弟们有观察过一些大网站的视频形式,就知道这个ts是什么了,这篇文章教大家怎么下载ts视频
微博热搜
简介
这个一看标题相信大家就明白了,就是爬取微博热搜并进行通知python爬取电影信息
简介
经典的豆瓣电影信息,相信大部分兄弟入门都是这个吧,来回顾一下吧
待续
这篇博客会一直更新,有兴趣的兄弟们可以点赞收藏一手,后续会继续进行更新,后期会对所有的源码进行整理,到时候也会在这篇文章更新,还有爬虫专栏,兄弟们有兴趣的关注一下呀,另外大家想看博主出爬那个网站的教程,可以在下方评论
一起加油呀,兄弟们
-
python爬虫案例(小说与图片)
2021-09-18 17:21:39python爬取小说与图片源码案例,附送一个自写的视频程序 -
最简单的爬虫案例开发,Python原生爬虫
2022-04-14 22:13:15今天给大家来点最简单的爬虫案例,后续我会再给大家更新一些爬虫相关技能点大家好,我是小帅
今天给大家来点最简单的爬虫案例,后续我会再给大家更新一些爬虫相关技能点,请持续关注,另外你的三连是对小帅最大的支持 不过声明一下小帅 发的所有案例都是供大家学习的,不要随便乱用,或者作为商用!
前言
我们第一个爬虫程序,是来爬取某视频网的所有教程信息的名字。下面的代码锁使用到的技术有的我们并没有涉及到,后面的学习中我们会一一讲解。 这里只是让大家对爬虫程序有个大概的了解,熟悉最基本的爬虫流程,以及对爬虫处理有一个粗略的印象,同时,也是激发大家学习的热情,让大家对爬虫不仅停留在理论上,也可以实际操作去加深印象。
还有一些小案例,25个游戏源码 点击前面蓝色字体自取1.1 建立 imoocSpider.py 文件
爬虫文件的命名一定要准确,爬虫爬取的是哪一个网站就用哪一个网站来进行命名,这样以后我们写的爬虫越来越多会方便管理。
文件创建好之后首先导入 requests 第三方库和页面解析工具 BeautifulSoup:
import requests # requests库,用来发送网络请求 from bs4 import BeautifulSoup # 一个解析库,用来解析网页结构
Tips:BeautifulSoup 我们在后面会讲到,这里只是先用一下。
1.2 定义网址变量
定义网址变量 url,url 中存储的是我们要爬取的网站
url = "https://www.imooc.com" #某课网首页地址
1.3 创建请求头部
创建请求头部,因为服务器会分辨请求的是浏览器或者是爬虫,如果是爬虫的话会直接断开请求,导致请求失败。为了不让我们的爬虫暴露,所以要给它加上一层伪装,这样服务器就会认为是浏览器在请求了:
headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36'} # 请求头部
1.4 发起请求
使用 requests 库中的 get 方法来进行请求:
r = requests.get(url, headers= headers) # 发送请求
1.5 解析请求结果
因为请求的结果是 HTML 格式的,所以我们使用 BeautifulSoup 来解析我们的请求结果:
bs = BeautifulSoup(r.text, "html.parser") # 解析网页
在返回的请求结果中,我们想要的数据都是在 h3 标签中包裹着,所以我们使用 BeautifulSoup 查找返回结果中所有的 h3 标签并剥离,存储在变量 mooc_classes 中。
mooc_classes = bs.find_all("h3", class_="course-card-name") # 定位教程信息
1.6 解析数据
将每一个 h3 标签中的课程名称剥离,并存储在 class_list 这个列表中去,最后将课程信息存入到文本文件中:
class_list = [] for i in range(len(mooc_classes)): title = mooc_classes[i].text.strip() class_list.append("课程名称 : {} \n".format(title)) #格式化教程信息 with open('mooc_classes.txt', "a+") as f: # 将教程信息写入文本文件中 for text in class_list: f.write(text)
1.7 最终代码
下面就是我们这个小爬虫的最终代码:
实例演示
import requests # requests库,用来发送网络请求 from bs4 import BeautifulSoup # 这是一个解析库,用来解析网页 url = "https://www.......com" #教程网首页地址 headers = {'User-Agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36'} # 请求头部 r = requests.get(url, headers= headers) # 发送请求 bs = BeautifulSoup(r.text, "html.parser") # 解析网页 mooc_classes = bs.find_all("h3", class_="course-card-name") # 定位教程信息 class_list = [] for i in range(len(mooc_classes)): title = mooc_classes[i].text.strip() class_list.append("课程名称 : {} \n".format(title)) #格式化教程信息 with open('mooc_classes.txt', "a+") as f: # 将教程信息写入文本文件中 for text in class_list: f.write(text)
**上面的程序,就是一个最简单的一个爬虫程序。**最后,我们格式化输出的样式,使得输出格式为 教程名称+教程网名称的样式,最后把结果保存到一个 TXT 文件里面。最后我们打开 TXT 文件看一下效果:
小结
本小节,通过运用 BeautifulSoup 以及 Requests 实现了一个最简单的爬虫程序,关于它们的学习,我们会在后面的章节进行详细论述。这个小程序,只是向大家演示一个最基本的爬虫的工作流程。细心的同学肯定会发现,我们的代码量并不是很多,就轻松实现了一个简单的爬取工作。其实,正式因为使用Python 编写爬虫程序的简单方便,才使得 Python 语言成为了写爬虫程序的首选。
↓ ↓ ↓ ↓ 底下名片拿源码还有学习路线等等...↓ ↓ ↓ ↓???? -
Python 爬虫案例爬取图片源代码奉上
2020-11-21 00:54:15"""#导入第三方的一个http的请求库导入方法pip install requests#import requests导入Python的标准库 其自带import re思路定义一个函数,目的获取每张图片的地址1.先找到目标网址2、用正则来匹配不同图片的地址,... -
四个Python爬虫案例,带你掌握xpath数据解析方法!
2022-04-30 00:56:24实例化一个etree的对象,且需要将被解析的页面源码数据加载到该对象中 2.调用etree对象中的xpath方法结合xpath表达式实现标签的定位和内容的捕获。 环境安装 pip install lxml 如何实例化一个etree对象: from ... -
Python 爬虫总结——案例代码
2022-02-22 15:45:34seleium自动化爬虫 其他自动化操作 实现无界面 自动化处理iframe标签 基于selenium的12306用户登录 代理的使用 验证码解析 协程的使用 同步爬虫 多线程异步爬虫的使用 线程池 异步协程 aiohttp实现任务... -
技术更新,战术升级!Python爬虫案例实战从零开始一站通
2021-10-08 16:33:15分享课程——技术更新,战术升级!Python爬虫案例实战从零开始一站通,完整版129讲,提供课程源码下载! -
Python爬虫案例集合
2020-11-20 20:58:47urllib2urllib2是Python中用来抓取网页的库,urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用)在python2.x里面有urllib和urllib2;在python3.x里面就把urllib和urllib2合成一个urllib;urllib3是在python3.... -
Python3网络爬虫案例实战课程 视频+文档+源码
2018-06-28 18:07:07│ 课时06:Python爬虫常用库的安装.mp4 │ ├─章节2: 基础篇 │ 课时07:爬虫基本原理讲解.mp4 │ 课时08:Urllib库基本使用.mp4 │ 课时09:Requests库基本使用.mp4 │ 课时10:正则表达式基础.mp4 │ 课时11:... -
利用python爬虫爬取王者荣耀数据.py
2020-06-05 10:29:26在课余闲暇之时,我们可以使用脚本爬取王者荣耀的数据,包括每个英雄的技能介绍,方便对每个版本英雄的比较和判别英雄强度,这都是必不可少的一个好方法 -
python大作业源码--爬虫&游戏【完美搞定大作业】
2022-01-18 12:41:24多达几十个项目,类型全,只有你们想不到,而且这里没有资源限制,让您下载一次得两份实惠 -
【python爬虫案例】2022年5月爬取读者文章,爬虫基础入门案例(BeautifulSoup)
2022-05-23 17:49:282022年5月爬虫入门案例(BeautifulSoup) -
python爬虫基础及实例---代码经过实测
2018-09-07 11:09:05基于json的豆瓣电视剧爬虫案例 爬虫代码 import requests import json class Doubanspider : def __init__ (self) : #要将callback去掉,url地址是在network中含有信息的包的url地址 ... -
Python爬虫案例:下载文章数据,转制成PDF格式
2022-04-30 22:11:36wkhtmltopdf [软件],这个是必学准备好的,不然这个案例是实现不出来的 获取文章内容代码 发送请求, 对于url地址发送请求 解析数据, 提取内容 保存数据, 先保存成html文件 再把html文件转成PDF 代码实现 # 请求... -
python大作业--爬虫(完美应付大作业).zip
2020-06-18 21:09:28python大作业分享--30多个项目任你选(由于上传大小限制分多个文件上传。爬虫:https://download.csdn.net/download/weixin_43960044/12533382小游戏:https://download.csdn.net/download/weixin_43960044/12533379... -
python爬虫100例教程 python爬虫实例100例子
2021-09-10 09:09:08python爬虫100例教程 python爬虫实例100例子 涉及主要知识点: web是如何交互的 requests库的get、post函数的应用 response对象的相关函数,属性 python文件的打开,保存 代码中给出了注释,并且可以直接运行哦... -
python爬虫案例-python爬虫详细解析附案例
2020-11-01 13:13:45比如Django框架就是MVC的开发框架,但它还提供了其他基础功能帮助我们快速开发,比如中间件、认证系统等框架的关注点在于规范二字,好,我们要写的Python爬虫框架规范是什么?很简单,爬虫框架就是对爬虫流程规范的... -
2011-2020年全国333地级市气象数据(清洗后的数据+原始数据+Python爬虫项目源码+分析结果PPT).zip
2021-11-27 10:58:55爬虫项目源码:源码为Python代码、使用idea运行,也可以使用VScode运行,采用requests-bs4模式爬取数据。Requests模块用于网页信息提取,get方法获取参数;BeautifulSoup用于网页解析,获取网页内容 分析结果PPT,...