前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >​爬虫入门篇(上手即用)

​爬虫入门篇(上手即用)

原创
作者头像
星辉
发布2019-03-20 08:39:59
5230
发布2019-03-20 08:39:59
举报

目录

  • 什么是爬虫
  • 编辑器的选择
  • 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,需要自行安装python3brew install python3
  • 链接 python3 安装但没有链接到 python3,此时需要链接python3brew 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。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 简单爬虫代码
  • 一些轮子
  • 总结
  • 尾声
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档