如何入门 Python 爬虫?

346 篇文章 4 订阅
56 篇文章 4 订阅

我,完全的文科生,当时学python爬虫 完全摸不到头绪,各种资料一顿翻,一顿学,天天面对那个小黑框敲来敲去,很无聊,最后差点因为没有成就感而放弃!

直到有一天,看到了一个极简的爬虫项目,代码不超过10行,我照着敲了敲,一运行,就能迅速出结果,久违的新鲜感又回来了

因为怕忘了,就拿张纸,把代码一句一句的抄写下来,然后反复背诵,背写,背写敲

并给朋友一句句的解释每个代码是做什么的,原理是什么,为什么要这么做

反复练习,反复敲,时间长了,就形成肌肉记忆了,只要是浏览器能看到的,差不多就都能通过网页分析,然后就能抓下来,以后面试找工作也是一个非常好的加分亮点!

然后就开始学习抓取手机app中的内容,比如抓取发小曾经发过的朋友圈内容啥的,非常有意思

总之,爬虫基础打牢,遇到其他网络相关的问题,完全就不是问题了,这是万里python 长征的第一步,也是非常重要的一步!

下面是为了题主,亲自写的一个小教程,希望对你有帮助!

其实爬虫原理很简单,无非就是找到目标网站,把看到的内容抓下来嘛!

那我们设想个场景,当看到某不可描述的网站有很多好看的小姐姐,想把他们的美照都存下来,以供以后做电脑和手机壁纸怎么办?

img

一般小白会做以下操作:

  1. 打开某网站
  2. 找到好看的小姐姐照片
  3. 一张张的,右键 -> 图片另存为 -> 选择一个文件夹 -> 给照片取个名字 -> 存储,以此往复,当有上万张照片时,这样一顿操作下来,没有个几天是搞不定的,枯燥又无聊,估计都会得鼠标手了

那么学会 Python 后怎么做呢?

  1. 分析某网站,寻找规律,确认路径
  2. 撰写 Python代码
  3. 运行写好的Python文件,几分钟就搞定了

如果题主是完全的爬虫小白,但是了解一些 Python 和 HTML 基础语法,那也是极好的

所以,引用一句 Python名言,来表达我的观点:

img

好了,下面就开始严肃了,想让我放不可描述的网站是不可能的,对,我摊牌了,我说的网站就是百度老师

img

还是严肃一些吧,现在百度广告太多,有些小白同学难免会误入百度的深坑,如果大家没有FQ的条件的话,我还是推荐使用必应国际版,至少解决一些日常技术问题,及答案的精准性上会比百度强太多!
img
用它搜技术问题!

接下来设立个目标:获取 必应关于「如何入门 Python 爬虫?」的第一页的搜索结果标题和网址。

p.s.新手就别着急那个网站了,咱们先学走路,再学开车,你会了这个,那些普通的静态图片网站,你也就会了,原理都差不多的

回到正题,一般的小爬虫,可以分为三个步骤 :

  1. 查找HTML标签里包含的我们所需要的路径信息
  2. 在 python 程序里获取 百度的 html 响应
  3. 根据第一步,按照路径,从html 响应中提取所需的内容。

是不是很简单?听不懂也没关系,跟着我一步步做就完事了

首先,爬取的网址是这个,不要弄错了

如何入门 python 爬虫? - 国际版 Bing

第 1 步:找到目标内容的路径信息

打开谷歌浏览器,把上面这个网址打开,然后在界面空白的地方点击鼠标右键,选择最后那个「检查」。用控制面板上的小检查按钮,找到我们想要的 html 标签信息。

img
现找到每一个条目的路径:li.b_algo
img

找到目标标题和链接
img

复制对应的路径

1.1 由上图我们可以得到:

所有内容标题的路径:h2

所有内容链接的路径:cite

img

通过此查找,来检查,目标内容是否是想要的

第 2 步: 用Python来模拟,对必应的请求和响应

Python 中有许多方法可以做到模拟的网络请求,我一般是使用最人性化的Python包- Requests

p.s.如果获取的内容链接为空,那就是必应限制了,在 Get的时候,添加一个User-agent就可以了

#导入网络请求包
import requests

#模拟请求刚才的必应网址
response = requests.get('https://www.bing.com/search?q=%E5%A6%82%E4%BD%95%E5%85%A5%E9%97%A8+python+%E7%88%AC%E8%99%AB%3F')

#获取必应所返回的原始Html内容
htmlcontent = response.content

第 3 步:从原始 html 内容中提取所需信息

那么如何提取信息呢?Python已经给你准备好了相应的包了 - BeautifulSoup4

按照国际惯例,安装一下

pip3 install beautifulsoup4

htmlcontent 变量包含的是最原始的HTML,也就是文本格式,Python不能直接认识它,也不能直接用步骤1里的路径去找到目标的信息, BeautifulSoup帮我们解析了这个文本并解决了这个问题,这样Python通过它就可以认识路径了,就能实现我们的目标了

#导入BeautifulSoup包
from bs4 import BeautifulSoup 
 
### 创建一个解析 ### 
results_soup = BeautifulSoup(htmlcontent,'html.parser') 
 
### 找到所有的条目,由于是li标签,且样式是b_algo### 
search_results = results_soup.find_all("li",{"class":"b_algo"}) 

### 同样的找到条目下对应的标题和链接,标题是h2标签,链接是cite标签 ### 
title_list = [] 
url_list = [] 
for result in search_results:
    title_list.append(result.find('h2').text) 
    url_list.append(result.find('cite').text) 
 
### 保存到CSV文件### 
import pandas as pd 
pd.DataFrame({'标题':title_list, '链接':url_list}).to_csv('如何入门 python 爬虫?-必应.csv') 

输出结果:

img

以上,这个爬出来的结果表,对就可以进一步回答你的提问了,哈哈哈

最后呢,想下载图片怎么办?

试试下面这个下单个图片的代码,你自己获取图片链接,组成一个图片链接列表,然后循环下载就可以了

import requests

url = "http://craphound.com/images/1006884_2adf8fc7.jpg"

#获取图片相应
response = requests.get(url)
#判断一下状态码
if response.status_code == 200:
    # 把图片内容写入文件
    with open("/Users/apple/Desktop/sample.jpg", 'wb') as f:
        f.write(response.content)

总之,学习Python爬虫还是要项目驱动的去反复练习,才能深入理解掌握,才能在解决实际问题上做到游刃有余

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

四、Python视频合集

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
在这里插入图片描述

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值