最近Python爬虫比较火,看到网上分享源码的比较多,很少有教程帖子,为了帮助新人和对爬虫比较感兴趣的朋友,所以想到写一些比较详细教程帖子!大家共同学习!

下载工具,安装对应系统的版本,下面以windows说明:

1、下载Python3.7

QQ图片20180515112630.png(84.74 KB, 下载次数: 0)

保存到相册

2018-5-15 11:35 上传

3、配置环境变量

安装好Python后,复制安装路径,如安装路径C:\Python37,

按“Win+R”输入“cmd”后按“确定”按钮,在命令运行窗口

中输入“path=%path%;C:\Python37”。

测试环境变量,按Win+R输入cmd,在输入python,如图,就证明已经设置好了环境变量

好了准备工作,我们打开pyCharm编译器

1、点击Create New Project.

2、输入项目名、路径、选择python解释器

3、点击create之后,就会创建一个空项目,里面包含一个venv的文件夹,用于pycharm管理项目。

4、好了,写一个新的项目尝试一下pycharm吧!新建一个py文件:

那我们就以爬编程区的帖子为例吧:

1.首先找到地址http://bbs.duowan.com/forum-1345-1.html

2.我用的谷歌浏览器,按F12,右边Elements的

标签里找我们需要的帖子链接和名字,如图:

那开始写代码:

import urllib.request

import re

先导入两个模块解释下这两个模块,新人朋友们了解下,其他有基础的朋友有兴趣可以深入研究下:

urllib.request

官方地址

urllib.request — 为打开url提供的可扩展类库源代码:Lib / urllib / request.pyurllib.request模块定义了方法和类,帮助打开url(主要是HTTP)在一个复杂的世界——基本和摘要式身份验证,重定向,cookies等等

re模块

re 模块使 Python 语言拥有全部的正则表达式功能。compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

详细请看:

继续写代码:

import urllib.request

import re

url="http://bbs.duowan.com/forum-1345-1.html"#爬的地址

page=urllib.request.urlopen(url).read()#获取到该地址的所有内容

page=page.decode('utf-8') #转码

print(page)

我们来打印下page里面的内容:

是不是和图2网页里面的内容一模一样的

这里转码我讲下,'utf-8'是该网页的编码类型,我们必须找到网页的编码类型,要不然就会打印不正确,那么我们怎么知道网页的编码类型呢,在

头文件里的里

如图:

现在我们获取到该地址的所有数据都存在page里面了,那么我们要怎么去过滤里面内容,找到我们需要的内容呢,这就要用到正则表达式了,我们简单学习下正则表达式:

假设一下过滤内容,找head下的script:

开始写正则:

rf = r''

.+? 任意字符一个或则多个

(.+?) 提取括号中匹配的数据

上述代码的意思是我需要提取 script的src和type.

继续写代码:

#正则表达式

df= r'

(.+?)'

rf = r''

#匹配所有符合规则的内容存到html集合里面

html=re.findall(df, page, re.S)#re.S表示.可以代表\n

#匹配所有符合规则的内容存到html_script集合里面

for line in html:

html_script = re.findall(rf, line, re.S) # re.S表示.可以代表\n

print(html_script)

我们打印下看下效果:

效果不是很理想,那我们来优化下,把src和type分开,链接进行个拼接

将html_script集合里面的内容每一个内容赋值给ele

完整代码:

import urllib.request

import re

#url="https://www.hao123.com/"#爬的地址

url="http://bbs.duowan.com/forum-1345-1.html"

page=urllib.request.urlopen(url).read()#获取到该地址的所有内容

page=page.decode('utf-8') #转码

#正则表达式

df= r'

(.+?)'

rf = r''

#匹配所有符合规则的内容存到html集合里面

html=re.findall(df, page, re.S)#re.S表示.可以代表\n

#匹配所有符合规则的内容存到html_script集合里面

for line in html:

html_script = re.findall(rf, line, re.S) # re.S表示.可以代表\n

for ele in html_script:

#type

title = ele[1]

#src

link = ele[0]

print('%s %s'%(title, link))

代码写完了,是不是很简单,我们来看下效果:

python经典教程_零基础 Python爬虫经典实战教程相关推荐

  1. 慕课网python零基础入门教程_零基础Python爬虫入门学习一之综述

    原标题:零基础Python爬虫入门学习一之综述 大家好哈,最近博主在学习Python,学习期间也遇到一些问题,获得了一些经验,在此将自己的学习系统地整理下来,如果大家有兴趣学习爬虫的话,可以将这些文章 ...

  2. python批量下载文件教程_零基础Python教程:教你爬取天堂网1920*1080大图片(批量下载)...

    这篇文章将针对上篇文章的未尽事宜进行完善,完成图片的批量抓取. /2 图片网址解析/ 1. 我们首先来分析一下这个图片的地址在哪里.我们选择图片,然后右击网页检查,可以看到图片的路径,如下图所示. 2 ...

  3. 零基础python嵌入式开发_零基础Python入门教程

    第01课 python基础之python介绍 课时1python的职业方向和工资 试听 00 : 15 : 54 开始学习 课时2环境的安装 试听 00 : 14 : 16 开始学习 课时3基础班课程 ...

  4. python爬电影_零基础Python爬虫实现(爬取最新电影排行)

    原博文 2018-02-26 15:29 − 提示:本学习来自Ehco前辈的文章, 经过实现得出的笔记. 目标网站 http://dianying.2345.com/top/ 网站结构 要爬的部分,在 ...

  5. python问题分享_零基础入门Python常见问题分享

    零基础入门Python常见问题有哪些?作为经常混迹在各大Python技术论坛的小编而言,见到最多的话题就是:学习Python难不难?零基础可以学习Python吗?如何学习Python?等等.今天小编就 ...

  6. python 智能造句_[零基础学Python]正规地说一句话

    小孩子刚刚开始学说话的时候,常常是一个字一个字地开始学,比如学说"饺子",对他/她来讲,似乎有点难度,大人也聪明,于是就简化了,用"饺饺"来代替,其实就是让孩子 ...

  7. python课程思维导图_零基础Python学习思维导图,记得收藏

    原标题:零基础Python学习思维导图,记得收藏 本文主要涵盖了 Python 编程的核心知识(暂不包括标准库及第三方库). 1.按顺序依次展示了以下内容的一系列思维导图:基础知识,数据类型(数字,字 ...

  8. python 入门到实践期末考试常出现的考试内容_零基础Python入门及实践应用_章节测验,期末考试,慕课答案查询公众号...

    零基础Python入门及实践应用_章节测验,期末考试,慕课答案查询公众号 更多相关问题 不属于厌食证的病因病机为:() A.喂养不当 B.他病伤脾 C.先天不足 D.气滞血瘀 E.情志失调 点刺四缝穴 ...

  9. python爬取网站教学视频_零基础Python爬取网页文章和图片详细教学(内附源码、教学视频)...

    Python爬虫,这个我相信对于很多人来说都不陌生! 今天小编给大家提供一份零基础Python爬取网页图片以及小说的代码并且详细的和大家讲解一下! 开发环境:版本Python3.6.2!(2版本会在2 ...

最新文章

  1. java 反射 动态代理
  2. Oracle基于Linux平台的虚拟化与云计算战略
  3. pthread相关介绍
  4. 企业网络推广教你如何打造更利于SEO优化的标题?
  5. 用Windows Live Writer发布博客也可以不生成缩略图
  6. android java函数_java – 在android中创建全局函数
  7. Python Socket(未编辑)
  8. W3100SM-S 短信猫代码发送 上
  9. Python天天美味(17) - open读写文件
  10. 本地通过Eclipse链接Hadoop操作Mysql数据库问题小结
  11. Windows环境下安装Hadoop+Hive的使用案例
  12. iphone导出视频 无法连接到设备_如何解决爱思助手无法识别设备或连接超时等故障?...
  13. 【Codeforces】Chloe and the sequence (递归)
  14. 级联rc滤波_了解无源RC滤波器,看完这篇你就懂了(二)
  15. Win11环境 jdk1.8安装及配置详细教程
  16. 【渝粤教育】广东开放大学 国际法 形成性考核 (37)
  17. 病原微生物高通量测序:第二节 应用场景
  18. 程序猿也爱学英语,有图有真相 1
  19. 牟家和:没有无耻的创业者,只有无耻的投机者
  20. [GXOI/GZOI2019]逼死强迫症 题解

热门文章

  1. k8s(Kubernetes)实战(一)之部署etcd与flannel
  2. Redis 客户端三种不同的实现方式(Redisson、lettuce、jedis)
  3. 精伦的开发盒子USB上外挂SD卡路径
  4. python中sklearn实现决策树及模型评估_Python sklearn决策树算法实践
  5. Swift 设置UISearchBar圆角以及背景颜色
  6. 1080Ti+windows7和1080Ti+windows10的区别
  7. AGV运行数据显示系统----工业物流
  8. 21分钟Mysql入门教程
  9. 如何将音乐转换成 MP3 格式?分享三个方法!
  10. array python lambda_Python 06 lambda函数