Python3 爬虫快速入门攻略

一、什么是网络爬虫?

 

1、定义:网络爬虫(Web Spider),又被称为网页蜘蛛,是一种按照一定的规则,自动地抓取网站信息的程序或者脚本。

2、简介:网络蜘蛛是一个很形象的名字。如果把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页,从 网站某一个页面开始,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止。

3、爬虫流程:①先由urllib的request打开Url得到网页html文档——②浏览器打开网页源代码分析元素节点——③通过Beautiful Soup或则正则表达式提取想要的数据——④存储数据到本地磁盘或数据库(抓取,分析,存储)

 

 

二、上代码,直接看注释

 

 

开发环境:Win10+Python 3.6.1 64bit+PyCharm,自学Python 3爬虫时的备忘笔记。

 

 

1、爬取简书网站首页文章的标题和文章链接

 
  1. from urllib import request

  2. from bs4 import BeautifulSoup #Beautiful Soup是一个可以从HTML或XML文件中提取结构化数据的Python库

  3.  
  4. #构造头文件,模拟浏览器访问

  5. url="http://www.jianshu.com"

  6. headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'}

  7. page = request.Request(url,headers=headers)

  8. page_info = request.urlopen(page).read().decode('utf-8')#打开Url,获取HttpResponse返回对象并读取其ResposneBody

  9.  
  10. # 将获取到的内容转换成BeautifulSoup格式,并将html.parser作为解析器

  11. soup = BeautifulSoup(page_info, 'html.parser')

  12. # 以格式化的形式打印html

  13. #print(soup.prettify())

  14.  
  15. titles = soup.find_all('a', 'title')# 查找所有a标签中class='title'的语句

  16.  
  17. '''

  18. # 打印查找到的每一个a标签的string和文章链接

  19. for title in titles:

  20. print(title.string)

  21. print("http://www.jianshu.com" + title.get('href'))

  22. '''

  23.  
  24. #open()是读写文件的函数,with语句会自动close()已打开文件

  25. with open(r"D:\Python\test\articles.txt","w") as file: #在磁盘以只写的方式打开/创建一个名为 articles 的txt文件

  26. for title in titles:

  27. file.write(title.string+'\n')

  28. file.write("http://www.jianshu.com" + title.get('href')+'\n\n')

结果:

大概学习了下通过urllib和Beautiful Soup 进行简单数据爬取的流程,但是那只适用于一些简单的、数据量比较小的爬虫项目,如果需要爬取的数据量比较大的话,之前的方法必定非常缓慢,而且还可能遇到大规模爬虫IP被网站封禁的情况,因为好的网站会有反爬虫策略。多线程和分布式爬虫、我刚整理了一套2018最新的0基础入门和进阶教程,无私分享,加Python学习q-u-n :二二七,四三五,四五零 即可获取,内附:开发工具和安装包,以及系统学习路线图

 

IP代理、处理验证码、模拟登陆、内置浏览器引擎爬虫,还有注意配合反爬虫措施比较少的移动APP端抓取(抓包工具Fiddler)等等问题。

转载于:https://my.oschina.net/u/3849396/blog/1926125

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值