广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 爬虫学习笔记之单线程爬虫
  • 487
分享到

Python 爬虫学习笔记之单线程爬虫

爬虫单线程学习笔记 2022-06-04 18:06:15 487人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

介绍 本篇文章主要介绍如何爬取麦子学院的课程信息(本爬虫仍是单线程爬虫),在开始介绍之前,先来看看结果示意图 怎么样,是不是已经跃跃欲试了?首先让我们打开麦子学院的网址,然后找到麦子学院的全部课程信息,像

介绍

本篇文章主要介绍如何爬取麦子学院的课程信息(本爬虫仍是单线程爬虫),在开始介绍之前,先来看看结果示意图

查看图片

怎么样,是不是已经跃跃欲试了?首先让我们打开麦子学院的网址,然后找到麦子学院的全部课程信息,像下面这样

查看图片

这个时候进行翻页,观看网址的变化,首先,第一页的网址是 Http://www.maiziedu.com/course/list/, 第二页变成了 http://www.maiziedu.com/course/list/all-all/0-2/, 第三页变成了 http://www.maiziedu.com/course/list/all-all/0-3/ ,可以看到,每次翻一页,0后面的数字就会递增1,然后就有人会想到了,拿第一页呢?我们尝试着将 http://www.maiziedu.com/course/list/all-all/0-1/ 放进浏览器的地址栏,发现可以打开第一栏,那就好办了,我们只需要使用 re.sub() 就可以很轻松的获取到任何一页的内容。获取到网址链接之后,下面要做的就是获取网页的源代码,首先右击查看审查或者是检查元素,就可以看到以下界面

查看图片

找到课程所在的位置以后,就可以很轻松的利用正则表达式将我们需要的内容提取出来,至于怎么提取,那就要靠你自己了,尝试着自己去找规律才能有更大的收获。如果你实在不知道怎么提取,那么继续往下,看我的源代码吧

实战源代码


 # coding=utf-8
 import re
 import requests
 import sys
 reload(sys)
 sys.setdefaultencoding("utf8")
 
 
 class spider():
   def __init__(self):
     print "开始爬取内容。。。"
 
    def changePage(self, url, total_page):
     nowpage = int(re.search('/0-(d+)/', url, re.S).group(1))
     pagegroup = []
 
     for i in range(nowpage, total_page + 1):
       link = re.sub('/0-(d+)/', '/0-%s/' % i, url, re.S)
       pagegroup.append(link)
 
     return pagegroup
 
def getsource(self, url):
  html = requests.get(url)
  return html.text
 
def getclasses(self, source):
  classes = re.search('<ul class="zy_course_list">(.*?)</ul>', source, re.S).group(1)
  return classes
 
def geteach(self, classes):
  eachclasses = re.findall('<li>(.*?)</li>', classes, re.S)
  return eachclasses
 
def getinfo(self, eachclass):
  info = {}
  info['title'] = re.search('<a title="(.*?)"', eachclass, re.S).group(1)
  info['people'] = re.search('<p class="color99">(.*?)</p>', eachclass, re.S).group(1)
  return info
 
def saveinfo(self, classinfo):
  f = open('info.txt', 'a')
 
  for each in classinfo:
    f.writelines('title : ' + each['title'] + 'n')
    f.writelines('people : ' + each['people'] + 'nn')
 
  f.close()
 
 
if __name__ == '__main__':
 
   classinfo = []
   url = 'http://www.maiziedu.com/course/list/all-all/0-1/'
   maizispider = spider()
   all_links = maizispider.changePage(url, 30)
   for each in all_links:
     htmlsources = maizispider.getsource(each)
     classes = maizispider.getclasses(htmlsources)
     eachclasses = maizispider.geteach(classes)
 
     for each in eachclasses:
       info = maizispider.getinfo(each)
       classinfo.append(info)
 
   maizispider.saveinfo(classinfo)


以上代码并不难懂,基本就是正则表达式的使用,然后直接运行就可以看到开头我们的截图内容了,由于这是单线程爬虫,所以运行速度感觉有点慢,接下来还会继续更新多线程爬虫。

应小伙伴们的要求,下面附上requests爬虫库的安装和简单示例

首先安装pip包管理工具,下载get-pip.py. 我的机器上安装的既有python2也有python3

安装pip到Python2:

python get-pip.py

安装到python3:

python3 get-pip.py

pip安装完成以后,安装requests库开启python爬虫学习

安装requests

pip3 install requests

我使用的python3,python2可以直接用pip install requests.

入门例子


import requests

html=requests.get("http://gupowang.baijia.baidu.com/article/283878")
html.encoding='utf-8'
print(html.text)

第一行引入requests库,第二行使用requests的get方法获取网页源代码,第三行设置编码格式,第四行文本输出。
把获取到的网页源代码保存到文本文件中:


import requests
import os

html=requests.get("http://gupowang.baijia.baidu.com/article/283878")
html_file=open("news.txt","w")
html.encoding='utf-8'
print(html.text,file=html_file)

--结束END--

本文标题: Python 爬虫学习笔记之单线程爬虫

本文链接: https://www.lsjlt.com/news/14161.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 爬虫学习笔记之单线程爬虫
    介绍 本篇文章主要介绍如何爬取麦子学院的课程信息(本爬虫仍是单线程爬虫),在开始介绍之前,先来看看结果示意图 怎么样,是不是已经跃跃欲试了?首先让我们打开麦子学院的网址,然后找到麦子学院的全部课程信息,像...
    99+
    2022-06-04
    爬虫 单线程 学习笔记
  • Python 爬虫学习笔记之多线程爬虫
    XPath 的安装以及使用 1 . XPath 的介绍 刚学过正则表达式,用的正顺手,现在就把正则表达式替换掉,使用 XPath,有人表示这太坑爹了,早知道刚上来就学习 XPath 多省事 啊。其实我个人认...
    99+
    2022-06-04
    爬虫 之多 线程
  • 爬虫学习之第四章爬虫进阶之多线程爬虫
    有些时候,比如下载图片,因为下载图片是一个耗时的操作。如果采用之前那种同步的方式下载。那效率肯会特别慢。这时候我们就可以考虑使用多线程的方式来下载图片。 多线程介绍: 多线程是为了同步完成多项任务,通过提高资源使用效率来提高系统的效率...
    99+
    2023-01-31
    爬虫 进阶 第四章
  • python简单爬虫笔记
    python模拟游览器爬取相关页面 import urllib.request url="https://blog.51cto.com/itstyle/2146899" #模拟浏览器 headers=("User-Agent","Moz...
    99+
    2023-01-31
    爬虫 简单 笔记
  • Python的Scrapy爬虫框架简单学习笔记
    一、简单配置,获取单个网页上的内容。 (1)创建scrapy项目 scrapy startproject getblog (2)编辑 items.py # -*- coding: utf-8 ...
    99+
    2022-06-04
    爬虫 学习笔记 框架
  • Python 爬虫学习笔记之正则表达式
    正则表达式的使用 想要学习 Python 爬虫 , 首先需要了解一下正则表达式的使用,下面我们就来看看如何使用。 . 的使用这个时候的点就相当于一个占位符,可以匹配任意一个字符,什么意思呢?看个例子就知道 ...
    99+
    2022-06-04
    爬虫 学习笔记 正则表达式
  • Python爬虫学习路线
    (一)如何学习Python 学习Python大致可以分为以下几个阶段: 1.刚上手的时候肯定是先过一遍Python最基本的知识,比如说:变量、数据结构、语法等,基础过的很快,基本上1~2周时间就能过完了,我当时是在这儿看的基础:Pytho...
    99+
    2023-01-31
    爬虫 路线 Python
  • 『爬虫』学习记录
    ## 在学习爬虫中遇到很多坑,写出来供道友参考 出现诸如以下错误     ModuleNotFoundError: No module named 'js2xml'     NameError: name 'js2xml' is no...
    99+
    2023-01-31
    爬虫
  • 爬虫笔记1:Python爬虫常用库
    请求库:1、urllib:urllib库是Python3自带的库(Python2有urllib和urllib2,到了Python3统一为urllib),这个库是爬虫里最简单的库。2、requests:requests属于第三方库,使用起来...
    99+
    2023-01-31
    爬虫 常用 笔记
  • python爬虫Mitmproxy安装使用学习笔记
    目录一、简介和安装1.1、概念和作用概念作用1.2、安装1.3、工具介绍二、设置代理2.1、PC端设置代理2.2、PC端安装证书2.3、移动端设置代理三、 mitmdump3.1、插...
    99+
    2022-11-12
  • python爬虫笔记-day3
    正则使用的注意点re.findall("a(.*)b","str"),能够返回括号中的内容,括号前后的内容起到定位和过滤的效果原始字符串r,待匹配字符串中有反斜杠的时候,使用r能够忽视反斜杠带来的转义的效果点号默认情况匹配不到\n\s能够匹...
    99+
    2023-01-31
    爬虫 笔记 python
  • 【python爬虫学习 】python
    pip 安装 pip install scrapy 可能的问题: 问题/解决:error: Microsoft Visual C++ 14.0 is required. 实例demo教程 中文教程文档 第一步:创建项目目录 ...
    99+
    2023-01-31
    爬虫 python
  • python萌新爬虫学习笔记【建议收藏】
    文章目录 1. 如何何请求解析url2. 如何获取标签里面的文本3. 如何解析JSON格式4. 如何添加常用的header5. 如何合并两个div6. 如何删除html dom的部分结构7. ...
    99+
    2023-09-20
    python 爬虫 学习
  • Python爬虫笔记4-Beautif
    BeautifulSoup介绍 与lxml一样,BeautifulSoup也是一个HTML/XML的解析器,主要功能也是如何解析和提取HTML/XML数据。 几种解析工具的对比 工具 速度 难度 正则表达式 最快 困难 ...
    99+
    2023-01-31
    爬虫 笔记 Python
  • Python爬虫学习教程:天猫商品数据爬虫
    天猫商品数据爬虫使用教程下载chrome浏览器查看chrome浏览器的版本号,下载对应版本号的chromedriver驱动pip安装下列包pip install seleniumpip install pyquery登录微博,并通过微博绑定...
    99+
    2023-06-02
  • python爬虫学习笔记--BeautifulSoup4库的使用详解
    目录使用范例常用的对象–Tag常用的对象–NavigableString常用的对象–BeautifulSoup常用的对象–Comment对文档树的遍历tag中包含多个字符串的情况.stripped_strings 去...
    99+
    2022-06-10
    python pythonBeautifulSoup4库
  • 好程序员Python学习路线之python爬虫入门
      好程序员Python学习路线之python爬虫入门,随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(Search Engine),例如传统的通用搜索引擎AltaVista,Yaho...
    99+
    2023-06-02
  • Python爬虫学习之requests的使用教程
    目录requests库简介requests库安装1、pip命令安装2、下载代码进行安装requests库的使用发送请求get请求抓取二进制数据post请求POST请求的文件上传利用r...
    99+
    2022-11-11
  • python爬虫之爬取笔趣阁小说
    目录前言一、首先导入相关的模块二、向网站发送请求并获取网站数据三、拿到页面数据之后对数据进行提取四、获取到小说详情页链接之后进行详情页二次访问并获取文章数据五、对小说详情页进行静态页...
    99+
    2022-11-12
  • python实现爬虫统计学校BBS男女比例之多线程爬虫(二)
    接着第一篇继续学习。 一、数据分类 正确数据:id、性别、活动时间三者都有 放在这个文件里file1 = 'ruisi\correct%s-%s.txt' % (startNum, endNum) 数据格式...
    99+
    2022-06-04
    爬虫 之多 线程
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作