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

优采云 发布时间: 2021-10-23 01:00

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

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

  给定初始地址

  国家地理中文网站:

  获取和分析网页内容

  一种。分析网页的结构以确定所需的内容

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

  

  我们会发现在标签的scr=""中放置了image类型的数据。我们只需要找到这些标签,从中提取出我们想要的联系,就可以完成我们的期望。

  湾 获取网页内容

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

  作者使用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号码、网址等。、邮箱等,非常好用。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线