Python爬虫教程1

前言

最近主要在学爬虫,学了Python就得展示出它的优势(主要是为了炫耀才学的 ),在学习的过程中也和大家分享一下方法。
如果你要学爬虫,建议你先把html学一下,这很重要,学到后面就知道了。
Python版本:3.7.4
电脑系统:Windows10,64位
所谓爬虫,就是从网络上获取数据(一般是批量获取),可以是图片也可以是字符等。但无论如何请记住,不管你要从网上爬取什么,频率不能太高,这样会造成风险:
第一:你可能会被网站限流或封号,这只是小事。
第二(遇到这个你就可能犯法了):别人的服务器会受损,如果是小网站,服务器就崩了。

配置

废话不多说,先下载第三方库。
Win + R,输入cmd,cd到Python/Scripts目录(具体路径视个人情况而定):

> pip install bs4
> pip install requests
> pip install lxml

正式教学

我们先看看requests和bs4加在一起用会怎么样

from bs4 import BeautifulSoup
import requests
response = requests.get("https://www.baidu.com")
soup = BeautifulSoup(response.content, features="lxml")
print(soup.prettify())

可以看到,这是一个百度首页的源代码,你可以把网址换掉试一下(在没有请求头的情况下,大部分网站都爬不了,关于请求头,我之后会讲)
我们可以用soup.a获取网站的第1个a标签,同理soup.img可以找到第1个img标签,可如果网页有多个相同标签呢?
BeautifulSoup有一个方法find_all(),可以找到html的所有标签,以列表形式返回。在方法中加参数,可以找出特定一种标签,如果参数是列表,那么就找出特定多种标签。方法还有一个参数attrs,输入一个字典,可以找到特定属性的特定标签,如:

soup.find_all("img", attrs={
   "id", "image"})

可以找到网页中所有id是image的img标签。
如果要获取标签的属性,可以用label.attrs获取,返回字典,其中label是标签。
标签的文本用label.text获取
以上是比较常用的代码,其它我就不提及了。

举个栗子

现在,我们来爬取百度首页上的图片并保存(别问我为什么爬这个,那你说要爬啥 )。
首先,要获取网站源代码。

response = requests.get("https://www.baidu.com")
soup = BeautifulSoup(response.content, features="lxml")

这一部分刚刚已经完成过了,接下来需要遍历img标签,获取它们的src标签。
完整代码:

from bs4 import BeautifulSoup
import requests
import random
import time
response = requests.get("https://www.baidu.com")
soup = BeautifulSoup(response.content, features="lxml")
count = 1
for img in
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值