爬虫入门篇(上手即用)

目录

  • 什么是爬虫
  • 编辑器的选择
  • mac 操作
  • 简单爬虫代码
  • 一些轮子
  • 总结
  • 学习的链接
  • 尾声

什么是爬虫

爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

为什么是python?
Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实现你想要的功能。

编辑器的选择

可以考虑使用Pycharm,专用编辑器会更好用一些。

与其特立独行用最轻便最好用的,倒不如用用户量大的Idle,生态更好,遇到问题会更有的可能找到解决方案。
我想,这可能便是Idle和编程语言的护城河。

mac 操作

  • python 版本号查询
    直接在 terminal 键入 python( 此为 python2 )
    直接在 terminal 键入 python3( 此为 python3 )

注意事项
python 默认对应 python2.7, pip 默认对应 pip2, python2 对应 pip2
python3 对应 pip3,不想用系统默认的python和pip,则需要使用 python3 和 pip3.

  • 安装 python3
    mac 本身带有 python2.7,需要自行安装python3

brew install python3

  • 链接 python3
    安装但没有链接到 python3,此时需要链接python3

brew link python

但是出现错误

Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks

输入以下指令,从而将相应的文件夹的权限打开

sudo mkdir /usr/local/Frameworks
sudo chown $(whoami):admin /usr/local/Frameworks

简单爬虫代码

一段可获得html网页的朴素的爬虫代码

import urllib.request
response = urllib.request.urlopen(‘http://python.org/’)
result = response.read().decode(‘utf-8’)
print(result)

若有些网址设有反爬机制,请求若没有headers就会报错。
可以通过chrome浏览器的F12-network查看request的headers,将该网页的headers信息复制下来使用。

一段加入headers的获取网页爬虫代码

import urllib.request
headers = {‘User_Agent’: ‘’}
response = urllib.request.Request(‘http://python.org/’, headers=headers)
html = urllib.request.urlopen(response)
result = html.read().decode(‘utf-8’)
print(result)

反馈异常错误非常关键,避免在爬取的过程中被打断而终止。

一段加入try…exception结构的网页爬虫网页

import urllib.requestimport urllib.error
try:
headers = {}
response = urllib.request.Request(‘http://python.org/’,
headers=headers)
html = urllib.request.urlopen(response)
result = html.read().decode(‘utf-8’)
except urllib.error.URLError as e:
if hasattr(e, ‘reason’):
print(‘错误原因是’ + str(e.reason))
except urllib.error.HTTPError as e:
if hasattr(e, ‘code’):
print(‘错误状态码是’ + str(e.code))
else:
print(‘请求成功通过。’)

一些轮子

不需要重复造轮子,有需要爬的网站,然后拿别人的代码爬即可。
GitHub - shuizhubocai/crawler: requests+lxml爬虫,简单爬虫架构

推荐|23个Python爬虫开源项目代码:爬取微信、淘宝、豆瓣、知乎、微博等 - 七月在线

总结

  • 试着一站式解决问题
    看博客文章的时候,遇到一些问题,先不要着急去其他的地方查,先看看这篇文章里面有没有提到这种错误和问题。作者因为经历过一遍,更有可能把问题和总结写在文章里面。
  • 有的程序对插件版本有一定的要求
    python的代码有可能对相应的插件的版本有要求,有可能这个便是程序难以使用的原因。

学习的链接

Python爬虫学习之(一)| 从零开始 - Python数据科学 - SegmentFault 思否

Get Started Tutorial for Python in Visual Studio Code

尾声

感谢你的阅读,希望你能够从中收获到一点点。如果你有一些经验和感悟,欢迎和我交流,很高兴与你交朋友。qq:1175720614。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值