网站内容抓取(无论什么都有一个背景工具或者说运行的环境。。 )

优采云 发布时间: 2022-03-16 15:19

  网站内容抓取(无论什么都有一个背景工具或者说运行的环境。。

)

  一切都有一个运行它的后台工具或环境。以下是背景说明:

  我使用的工具是:解释器:python3.7 编译器:VScode Librarian:pip

  这里需要调用的模块:requests BeautifulSoup

  在学习python的过程中,会发生很多有趣有趣的事情,通过每一个功能,我都会一一实现自己不切实际的愿望。

  先说一下如何爬取网站的内容,这是什么意思,就是用python语言查看网页内容:

  1.案例:

  抓取网页的 URL

  2.代码实现:

  (1)第一小步

  import requests

res = requests.get('https://alexa.chinaz.com/Country/index_CN.html')

print(res)

  这句话很简单,分三步:

  第一:调用requests模块;

  二:获取URL内容;

  第三:打印结果。

  (2)第二小步

  成功拿到网站的票后,我们就开始做事,做我们想做的事,得到我们需要的东西。内容和格式需要转换。

  这时候我也发现打印结果有点不对:

  乍一看,这不是我们想要的。为什么,它没有转换成字符串,所以:

  import requests

res = requests.get('https://alexa.chinaz.com/Country/index_CN.html')

res_str = res.text

print(res_str)

  但是这之后发生了什么?

  (3)第三小步

  我们需要解析数据。经BeautifulSoup过滤打包后,提升档次,成为“无人问津”的大明星。这里的 BeautifulSoup 是一个需要用 pip 安装的模块。

  import requests

res = requests.get('https://alexa.chinaz.com/Country/index_CN.html')

res_str = res.text

print(res_str)

from bs4 import BeautifulSoup

res_bs = BeautifulSoup(res_str.text,'html.parser')

print(res_bs)

  现在,我想做一个代码优化并引入时间模块

  import requests,time

from bs4 import BeautifulSoup

url = 'https://alexa.chinaz.com/Country/index_CN.html'

res = requests.get(url)

if res.status_code == 200:

print('恭喜你成功进入网站')

res_str = res.text

print(res_str)

res_bs = BeautifulSoup(res_str,'html.parser')

print(res_bs)

  是的,你没看错,这只是一个过场*敏*感*词*和包装,它的本质并没有改变。改变的是资源,它可以容纳所有的资源。

  (4)第四小步

  既然打包完成了,我们就开始充分利用资源来提取数据,也就是开始让你这个大明星出去赚钱了。

  import requests,time # 引用两个模块

from bs4 import BeautifulSoup # 引用一个模块

url = 'https://alexa.chinaz.com/Country/index_CN.html' # 赋值链接

res = requests.get(url) # 获取这个链接的数据

if res.status_code == 200: # 这个步骤是为了看有没有正常访问网站

print('恭喜你成功进入网站')

res_str = res.text # 这个是解析成为字符串

print(res_str)

res_bs = BeautifulSoup(res_str,'html.parser') # 进一步解析成为bs4格式的数据,以便下面提取

print(res_bs)

res_fi = res_bs.find('div')

print(res_fi)

  (5)第五小步

  我们通过进一步提取个别信息来缩小范围

  import requests,time # 引用两个模块

from bs4 import BeautifulSoup # 引用一个模块

url = 'https://alexa.chinaz.com/Country/index_CN.html' # 赋值链接

res = requests.get(url) # 获取这个链接的数据

if res.status_code == 200: # 这个步骤是为了看有没有正常访问网站

print('恭喜你成功进入网站')

res_str = res.text # 这个是解析成为字符串

res_bs = BeautifulSoup(res_str,'html.parser') # 进一步解析成为beautifulsoup格式的数据,以便下面提取

res_fia = res_bs.find_all('div',class_='righttxt') # 查找所有符合条件的一个情况

for wangzhi in res_fia: # 以循环的方式遍历,然后在进行tag提取

chenggong = wangzhi.find(class_='tohome')

print(chenggong['href'])

  这里的class_是为了避免和python的class类冲突。其实到最后,掌握数据提取的方法就足够了,这样你就可以知道自己在做什么,想要达到什么样的结果。

  以上代码执行完美,从网页中提取流量网站

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线