目录:

  • 爬虫基础知识学习网址(简单易懂)
  • 案例分析
  • 我爬取新闻网站所遇到的问题及其解决方法
  • 还存留的疑惑

关于爬虫的基础知识的网站

  • 崔庆才爬虫博客(先看) http://cuiqingcai.com/1052.html
  • 廖雪峰python学习网站 http://www.liaoxuefeng.c/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000
  • 爬虫实例 http://cuiqingcai.com/4352.html
  • 知乎小白爬虫具体案例+分析 https://www.zhihu.com/collection/159805421
  • 知乎爬虫之知识集锦 (遇到问题时再看) https://zhuanlan.zhihu.com/p/21479334

爬取一个新闻网站

第一步:明确爬虫思路

1)在看完以上教程后,我们可以知道,我们要获取的网页的信息皆来自html源代码,而获取源代码需要我们获得这个网页的url(即链接),所以当我们爬取整个网站时,需要先获得网站的url

2)故而我们需要先观察要爬取的网站的架构
例如我的:
先得到: 大目录下每一项的url
再得到: 该目录项下每一页的url
最后获得: 每一项新闻的url 
(此处可用循环函数) 

3)通过每一项的url,获得该url的html的信息: 
  标题,发布时间,图片,正文等
  (此处可用正则匹配和beautifulsoup)

这一来O(∩_∩)O是不是思路清晰了很多呢?
从我刚刚讲到的就可以知道爬虫最关键的两步就是获得访问权限匹配 了,  下面具体问题具体分析

第二步:获得访问权限

1)网页请求头的获取方法:
按"f12"--然后点击"网络监视器"--在列表中随机点击一个--点击后会出现消息头--在消息头处找到请求头--找到'User-Agent'--其对应的值(这就是请求头啦)
这个是我在刚刚说的那个网站上获得的:

headers = {'User_Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:53.0) Gecko/20100101 Firefox/53.0'
}
url = "http://zh.vietnamplus.vn/"
m_response = requests.get(url=url, headers=headers)
m_html = m_response.text

2)其他详细方法请戳-->http://www.cnblogs.com/junrong624/p/5533655.html

第三步:查看页面元素以及正则匹配

把鼠标移到目录位置按右键-"查看元素",可以定位该目录,并看到其在html上对应的代码:

"><span class="title">
<a href="/politics.vnp">时政</a>
</span></li><li class="parent ">
<span class="title">
<a href="/world.vnp">国际</a>
</span></li><li class="parent ">
<span class="title">
<a href="/business.vnp">经济</a>
</span></li><li class="parent ">
<span class="title">
<a href="/social.vnp">社会</a>
</span></li><li class="parent ">
<span class="title">
<a href="/culture.vnp">文化</a>
</span></li><li class="parent ">
<span class="title">
<a href="/sports.vnp">体育</a>
</span></li><li class="parent ">
<span class="title">
<a href="/technology.vnp">科技</a>
</span></li><li class="parent ">
<span class="title">
<a href="/environment.vnp">环保</a>
</span></li><li class="parent ">
<span class="title">
<a href="/Travel.vnp">旅游</a>
</span></li>

当我从网站上进入其中一项,如:"时政"时,我发现出现的新网页的url正好就是上面的 'politics.vnp'+在首页网址(http://zh.vietnamplus.vn/)后面 http://zh.vietnamplus.vn/politics.vnp

所以我们只要把相应的网址的url字符串匹配出来后再联结在一起再访问就可以访问子网页啦!~

这个时候我们就要用到正则匹配了
(请先装好re包)
到底怎么用呢?请戳下面:

  • 正则匹配的简单学习的网址:
    http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html?nsukey=87n%2Feuq1bh7UOjRfssJX4yWyLNqQSEzMW%2Fw6i4y5GxXWo8dRgZ1ZYIkAHI44dWrMmTsOPomm%2B6aU2eyVkFkfvTod4B5TLtYC2Z6uk2ez0eBTqzW6HOn7%2BGCeIMy9ViXz9IUMrw%2BipjAA5YYItCXPLA%3D%3D
  • 正则匹配的详细学习的网址(这个比较容易理解些)
    https://deerchao.net/tutorials/regex/regex.htm?nsukey=FH6k8nAWLGh8BnpLuW8%2FP9IKHkoYL93XC4NJ3clbq1MJcfL9HbBOLFd3pLK1g89JflKztPFDK3DRW7vfLGqMWLUKazcMVoUNEgBItrR96dGc8PYahHrqTGdembVCTatGYsQxz5gptqT57qZTFLoERnsH8fCAlLV8%2Fxb4lh0wbKgBtFLEtfDxpO7QpF%2F3RH0T

python代码如下:

classifications = re.findall(r’.+?\s’, m_html)#这里就是正则匹配啦
# 利用集合去重
classifications = list(set(classifications))
print classifications
#获取每个分类的url
num = 0
for classification in classifications:
c_url = ‘http://zh.vietnamplus.vn/’ + classification
print c_url
classification

比较高难度点的就用beautifulsoup
到底怎么用呢?请戳下面:

  • Beautifulsoup的学习的网址:
    http://blog.sina.com.cn/s/blog_64d0b03c0101dxd3.html
  • Beautifulsoup的详细学习的网址(这个比较容易理解些)
    http://cndenis.iteye.com/blog/1746706
  • Beautifulsoup的select方法详解的网址:
    https://www.cnblogs.com/yizhenfeng168/p/6979339.html
  • BeautifulSoup 模块使用指南的网址:
    https://www.jianshu.com/p/2b783f7914c6
    以此类推,是不是也可以匹配其他信息了

第四步:将爬取的内容保存到文件里
- 参考方法:
http://www.cnblogs.com/ymjyqsx/p/6554817.html

**爬虫过程中遇到的问题:1>url字符串无法联结2>url无法访问
方法
方法
3>字符串就是匹配不到,明明没错4>编码解码等问题
方法

方法

这些内容待我搞明白会继续补充

大一小白爬虫初试(初学者必看)相关推荐

  1. arma模型_Eviews经典案例 | 初学者必看!ARMA模型精讲

    [本期分析师介绍]希音老师,<数据分析学堂>金牌分析师,对eviews的时间序列.ARMA.VAR.VECM.ARCH.GARCH等操作有深入的研究和实战经验,累计服务客户1000+.今天 ...

  2. 简单的CreateRemoteThread例程-初学者必看

    简单的CreateRemoteThread例程-初学者必看 // _remotethreaddemo.cpp : Defines the entry point for the console app ...

  3. vba 根据分辨率 调整窗口显示比例_2020 如何选择适合自己的显示器?小白选购电脑显示器必看,附各类型显示器高性价比选购指南分析...

    2020如何选择适合自己的显示器?小白选购电脑显示器必看,可能是全网最完整显示器参数科普与选购分析. 说到显示器的选购,你的反应是什么?价格.尺寸.分辨率,我相信大部分小白最关心的就是这三个问题.这是 ...

  4. myeclipse文档链接oracle,[数据库]MyEclipse 连接Oracle数据库(初学者必看)

    [数据库]MyEclipse 连接Oracle数据库(初学者必看) 0 2015-05-06 22:03:18 前言:刚接触Oracle数据库,便有一个需求,编写控制台程序,实现主人登录.数据库为Or ...

  5. led驱动电源初学者必看_初学者:如何在Windows 8中查看Metro应用程序的已用驱动器空间...

    led驱动电源初学者必看 In Windows 8 there is no obvious way of checking how much space each Metro app is takin ...

  6. lua菜鸟教程_初学者必看:Lua入门学习教程

    Lua入门学习教程是本文要介绍的内容,主要是来对Lua入门的一个学习,Lua是一个被设计成用于扩展C/C++编程的轻量级脚本语言.不幸的是,网上很少有关于这个语言的在线教程.我主要通过阅读其源代码来了 ...

  7. Qt Designer入门教程 初学者必看

    在Linux下,一个非常流行的RAD工具就是Qt Designer.它是嵌入式公司 Trolltech的Qt软件包的一个组成部分. Qt Designer入门教程 初学者必看是本文要介绍的内容,不说这 ...

  8. 计算机键盘分区,电脑初学者必看键盘五个分区功能知识.doc

    文档介绍: 电脑初学者必看键盘五个分区功能知识,电脑初学者必看键盘基本分区,初学者熟悉键盘,初学者熟悉键盘图片,美发初学者分区要多久,初学者熟悉键盘视频,电脑键盘功能介绍,钢琴键盘示意图简谱,键盘26 ...

  9. 初学者必看篇之国产数据库---达梦

    初学者必看篇之国产数据库-达梦 需要了解的可以点进去看看----达梦官网 首先,写这篇文章的目的是为了把学到的新知识做个总结梳理,同时我也希望在学习的过程中把一些需要注意的细节和大家分享,正所谓,共同 ...

最新文章

  1. 再见Spring!下一个开源框架更香!
  2. UNIX中的restrict
  3. 中海达手部链接电脑安装软件_山东水文局:较大含沙量条件下中海达ADCP外接测深仪测流系统试验成功...
  4. centos7输入法,非root用户无法使用
  5. centos 重启网卡_CentOS6 网络管理之网卡配置及简单路由设置
  6. Visual Studio2012打开时弹出“遇到异常:这可能是由某个扩展导致的”错误的解决办法...
  7. 一款开源Office软件---Lotus Symphony在Linux系统下的应用
  8. 拓端tecdat:matlab用Logistic逻辑回归建模和马尔可夫链蒙特卡罗MCMC方法分析汽车实验数据
  9. 靠播放业务吃不饱?音乐流媒体纷纷“加电商”卖周边
  10. IO负载高的来源定位
  11. 黑苹果卡在苹果logo_黑苹果的历史
  12. 计算机毕业设计ssm火车站售票管理系统
  13. 腾讯云服务器怎么进行学生认证?需要注意什么?
  14. 计算机裸机是指,计算机中裸机是指
  15. 阿里收购优酷土豆:内容进入GGC时代!
  16. android mvvm
  17. ABP 6.0.0-rc.1的新特性
  18. python绘制黑白棋盘_生成黑白棋盘标定图和单目相机标定(python+opencv实现)
  19. C++对象构建与使用,error: taking address of temporary [-fpermissive]
  20. Win10突然就不能连接网络了怎么办

热门文章

  1. 神州信息2020半年业绩报:金融科技业务签约同比大幅增长36%
  2. 在线笔记,智能便捷的编辑内容
  3. DSS部署-11、Spark on Yarn部署
  4. pycharm无法加载文件\venv\Scripts\Activate.ps1,因为在此系统上禁止运行脚本
  5. 月报总结|Moonbeam 3月份大事一览
  6. HDU-1730 Northcott Game
  7. promise微任务的执行
  8. 如何引爆净水市场驱动力,上海国际水展助您开拓新商机
  9. mysql 阿里_详细解读阿里手册之MySQL
  10. 基于词典方法和机器学习方法的中文情感倾向分析(毕业设计:附完整代码)