例1、爬取公众号文章中的图片。

1,首先打开要获取公众号文章的地址
2,按下F12,再按Ctrl Shift C,然后鼠标移动到图片位置,然后观察控制台中显示图片对应的代码位置
3,分析该位置的代码段

代码段如下:
<img data-s="300,640" data-type="png" data-src="http://mmbiz.qpic.cn/mmbiz_png/xXrickrc6JTO9TThicnuGGR7DtzWtslaBl2kjpHsq1xSmicGGreQ5yUTK6W8JlX30aB50615I06bqib4Bk17F4nV8A/0?wx_fmt=png" style="width: 677px !important; height: auto !important; visibility: visible !important;" class data-ratio="0.5602272727272727" data-w="880" _width="677px" src="http://mmbiz.qpic.cn/mmbiz_png/xXrickrc6JTO9TThicnuGGR7DtzWtslaBl2kjpH…50615I06bqib4Bk17F4nV8A/640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1" crossorigin="anonymous" data-fail="0">
这里我们观察这个代码段的格式:然后编写正则表达式

pattern = ‘data-type=“png” data-src="(.+?)"’
?       ---  匹配位于?之前的0个或1个字符
+      ---  匹配位于+之前的字符或子模块的1次或多次的出现
.       ---  匹配除换行符以外的任意单个字符
from re import findall
from urllib.request import urlopenurl = 'https://mp.weixin.qq.com/s?__biz=MzI4MzM2MDgyMQ==&mid=2247486249&idx=1&sn=a37d079f541b194970428fb2fd7a1ed4&chksm=eb8aa073dcfd2965f2d48c5ae9341a7f8a1c2ae2c79a68c7d2476d8573c91e1de2e237c98534&scene=21#wechat_redirect' #这个为要爬取公众号图片的地址
with urlopen(url) as fp:content=fp.read().decode('utf-8')pattern = 'data-type="png" data-src="(.+?)"'
#查找所有图片链接地址
result = findall(pattern, content)  #捕获分组
#逐个读取图片数据,并写入本地文件
path='f:/test/'#把图片存放到f盘下的test文件夹中
for index, item in enumerate(result):with urlopen(str(item)) as fp:with open(path+str(index)+'.png','wb') as fp1: fp1.write(fp.read())

例2、使用scrapy框架编写爬虫程序。

首先安装scrapy,打开cmd运行pip install scrapy
若出错:attrs() got an unexpected keyword argument ‘eq’
则运行:pip3 install attrs==19.2.0 -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com即可

运行cmd开始创建项目,根据指定位置可以切换路径
创建一个项目:scrapy startproject sqsq为项目名可随意
cd sq


出现这样表示scrapy框架已经搭建成功

例3、使用scrapy框架编写爬虫程序,爬取天涯小说。

这里以例2为基础继续
scrapy genspider xiaoshuosq bbs.tianya.cn/post-16-1126849-1.shtml
xiaoshuosq为爬虫名称
bbs.tianya.cn/post-16-1126849-1.shtml为爬虫起始位置,这里是天涯小说第一页

之后打开创建的xiaoshuosq爬虫

编写如下代码:

# -*- coding: utf-8 -*-
import scrapyclass XiaoshuosqSpider(scrapy.Spider):name = 'xiaoshuosq'#这里的是你创建的爬虫名称allowed_domains = ['http://bbs.tianya.cn/post-16-1126849-1.shtml']start_urls = ['http://bbs.tianya.cn/post-16-1126849-1.shtml/']def parse(self, response):content=[]for i in response.xpath('//div'):if i.xpath('@_hostid').extract()==['13357319']:for j in i.xpath('div//div'):c = j.xpath('text()').extract()g = lambda x:x.strip('\n\r\u3000').replace('<br>','\n').replace('|','')c = '\n'.join(map(g.c)).strip()content.append(c)with open('F:\result.txt','a+',enconding='utf8') as fp:fp.writelines(content)url=response.urld = url[url.rindex('-')+1:url.rindex('.')]u = 'http://bbs.tianya.cn/post-16-1126849-{0}.shtml'next_url = u.format(int(d)+1)try:yield scrapy.Request(url=next_url,callback=self.parse)except:pass

保存该爬虫
然后scrapy crwal xiaoshuosq这里的xiaoshuosq是你创建的爬虫名称

例4、使用requests库爬取微信公众号“Python小屋”文章“Python使用集合实现素数筛选法”中的所有超链接。

# -*- coding: utf-8 -*-
"""
Created on Mon Jun  1 21:40:19 2020@author: 78708
"""#使用requests库爬取微信公众号“Python小屋”文章“Python使用集合实现素数筛选法”中的所有超链接
import requests
import re
url = 'https://mp.weixin.qq.com/s?__biz=MzI4MzM2MDgyMQ==&mid=2247486531&idx=1&sn=7eeb27a03e2ee8ab4152563bb110f248&chksm=eb8aa719dcfd2e0f7b1731cfd8aa74114d68facf1809d7cdb0601e3d3be8fb287cfc035002c6#rd'
r = requests.get(url)
print(r.status_code )      #响应状态码
#print(r.text[:300]  )      #查看网页源代码前300个字符
print('筛选法' in r.text  )
print(r.encoding )
links = re.findall(r'<a .*?href="(.+?)"', r.text)
#使用正则表达式查找所有超链接地址
for link in links:if link.startswith('http'):print(link)from bs4 import BeautifulSoup
soup = BeautifulSoup(r.content, 'lxml')
for link in soup.findAll('a'):  #使用BeautifulSoup查找超链接地址href = link.get('href')if href.startswith('http'):      #只输出绝对地址print(href)

例5、读取并下载指定的URL的图片文件。

# -*- coding: utf-8 -*-
"""
Created on Mon Jun  1 21:39:44 2020@author: 78708
"""#读取并下载指定的URL的图片文件。import requests
picUrl = r'https://www.python.org/static/opengraph-icon-200x200.png'
r = requests.get(picUrl)
print(r.status_code)
with open('G:\TIM\图片\wsq.png', 'wb') as fp:#G:\TIM\图片\wsq.png 为保存路径以及图片名称fp.write(r.content)                #把图像数据写入本地文件

Python---爬虫案例相关推荐

  1. python爬虫简单实例-最简单的Python爬虫案例,看得懂说明你已入门,附赠教程

    原标题:最简单的Python爬虫案例,看得懂说明你已入门,附赠教程 这是最简单的Python爬虫案例,如果你能看懂,那么请你保持信心,因为你已经入门Python爬虫,只要带着信心和努力,你的技术能力在 ...

  2. python爬虫案例-Python爬虫案例集合

    原标题:Python爬虫案例集合 urllib2 urllib2是Python中用来抓取网页的库,urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用) 在python2.x里 ...

  3. python爬虫案例——百度贴吧数据采集

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python爬虫案例--百度贴吧数据采集 通过python实现百度贴吧页面的内容采集是相对来说比较容易的,因为百度贴吧不需要登陆,不需要coo ...

  4. python爬虫案例——糗事百科数据采集

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python爬虫案例--糗事百科数据采集 通过python实现糗事百科页面的内容采集是相对来说比较容易的,因为糗事百科不需要登陆,不需要coo ...

  5. python爬虫案例——csdn数据采集

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python爬虫案例--csdn数据采集 通过python实现csdn页面的内容采集是相对来说比较容易的,因为csdn不需要登陆,不需要coo ...

  6. [Python爬虫案例]-中国古诗网

    [Python爬虫案例]-中国古诗网 看懂代码,你需要相关知识 爬虫必备知识 只是想得到目标的话,直接运行就好了 import requests import re import jsondef pa ...

  7. Python 爬虫案例(二)--附件下载

    Python 爬虫案例(二) 此篇文章将爬取的网站是:http://www.warrensburg-mo.com/Bids.aspx (有时候打开不一定会有标书,因为标书实时更新) 类型跟上一篇相似, ...

  8. python爬虫案例_推荐上百个github上Python爬虫案例

    现在学生都对爬虫感兴趣,这里发现一些好的github开源的代码,分享给各位 1.awesome-spider 该网站提供了近上百个爬虫案例代码,这是ID为facert的一个知乎工程师开源的,star6 ...

  9. python爬虫案例-Python3爬虫三大案例实战分享

    课程名称: [温馨提示:1. 你可以在PC端浏览器或者微信收藏该页面,以方便你快速找到这个课程:2. 课程相关资料可在课程PC端公告查看下载:3.加入课程后,点(课时)列表即可观看视频 ] 课程须知: ...

  10. 【Python爬虫案例教学】采集某网站壁纸,实现壁纸自由

    前言 (。・∀・)ノ゙嗨 大家好,这里是小圆 现在开始每天都给大家 分享些关于python爬虫的案例教学 从最简单的开始 - 采集图片壁纸 今天就来扒拉这个优质的壁纸网站~ 网址

最新文章

  1. 计算机图形学直线扫描转论文,计算机图形学实验报告-实验1直线段扫描转换.doc...
  2. @Slf4j注解介绍
  3. 计算机在线平方,完全平方数批量判断在线计算器_三贝计算网_23bei.com
  4. SMACH专题(一)----安装与初探
  5. 随机对照试验设计的原理
  6. 微软起诉Google阻止前高管跳槽
  7. java hipster!_通过Java Hipster升级Spring Security OAuth和JUnit测试
  8. 【渝粤题库】陕西师范大学100071教育学作业(高起本)
  9. springmvc整理
  10. mysql抽屉图标_React Native自定义组件实现抽屉菜单控件效果
  11. 记录——《C Primer Plus (第五版)》第十章编程练习第八题
  12. 科研 | 如何找到研究的突破点?
  13. 用python 制作视频播放器
  14. linux 设置色彩深度,wayland显示服务器,怎么把色彩深度设置成24位
  15. Excel教程 零基础到应用实操
  16. 如何查看自己的电脑是32位机器还是64位机器
  17. EventBus Vuex?
  18. 怎么用计算机计算年月份,win7计算器怎么计算某年某月某日到某年某 – 手机爱问...
  19. Linux bridge agent状态xxx
  20. 中断优先级和中断线程优先级

热门文章

  1. 时间序列的截尾和拖尾_R语言:时间序列(一)
  2. 课时27.base(掌握)
  3. CSS 定位 四种定位
  4. SVN 定时 更新代码 Demo
  5. 11-[函数进阶]-闭包
  6. C# 连接Oracle数据库以及一些简单的操作
  7. 面试题24 二叉搜索树的后序遍历序列
  8. Spring 中的国际化Message的简单例子(ApplicationContext) 不跟框架集成的版本
  9. VS2005 there is no source code available for the current location 解决方案
  10. confluence 编辑器加载_Onlyoffice集成Confluence的工作原理