php 正则 抓取网页(以爬取国家地理中文网中的旅行类中的图片为例)

优采云 发布时间: 2022-01-21 03:09

  php 正则 抓取网页(以爬取国家地理中文网中的旅行类中的图片为例)

  本文以爬取国家地理中文网旅游分类中的图片为例,演示爬虫的基本功能。

  给定初始地址

  国家地理中文网:

  捕获和分析 Web 内容

  一个。分析网页的结构并确定所需的内容部分

  我们打开网页,右键选择“显示网页源代码”查看网页结构,以下是我截取的部分

  

  我们会发现,图片类型的数据是放在标签的 scr="" 中的。我们只需要找到这些标签并提取我们想要完成我们期望的连接。

  湾。获取网页内容

  提取内容,首先我们要向服务器发起请求,获取文件,分析提取其中的图片信息,整理保存数据

  笔者使用Python3.6,常用的获取网页内容的方式有两种:requests和urllib(python2中合并urllib和urllib2),获取网页内容请参考:爬虫基础:python获取网页内容

  现在,我们定义一个方法 crawl() 来获取网页

  import requests

def crawl(url, headers):

with requests.get(url=url, headers=headers) as response:

# 读取response里的内容,并转码

data = response.content.decode()

return data

  调用该方法获取网页内容:

  # 获取指定网页内容

url = 'http://www.ngchina.com.cn/travel/'

headers = {'User-Agent':'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Mobile Safari/537.36'}

content = crawl(url, headers)

print(content)

  编写正则表达式以匹配图像内容

  这样,我们抓取给定地址中的图像信息,我们选择其中一个:

  

  清点并进行下一轮爬取

  我们爬取了指定的内容后,就可以保存到数据库中了;如果是链接式爬取,我们可以创建一个url队列,将指定url中的新链接添加到url队列中,然后进行一轮的遍历和爬取,对于队列url的处理,需要根据具体要求采取相应的策略来完成相应的任务工作。更多爬虫信息请参考:初始爬虫。

  补充:

  我们在写正则表达式的时候,可以使用在线正则表达式工具快速查看匹配结果:菜鸟正则表达式工具,这个地址里面有一些常用的正则表达式已经写好了,比如电话、QQ号、URL、邮箱等,非常好用。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线