php正则函数抓取网页连接(怎么用python爬取数据?先放上示例代码)

优采云 发布时间: 2021-09-14 01:09

  php正则函数抓取网页连接(怎么用python爬取数据?先放上示例代码)

  如果说当下最流行的语言,那一定是python。如果说 Python 是最热门的方向,那么爬虫肯定有一席之地。目前很多python培训课程都喜欢使用python爬虫来增加学生的学习兴趣。那么,如何使用python抓取数据呢?接下来小编带你了解一个python爬虫的开发过程。

  小编先放了一个示例代码(以当当网好评榜TOP500为例),以下介绍是基于代码。

  import requests # 引入request库进行页面请求

from requests.exceptions import RequestException # 引入RequestException来捕获request可能出现的异常

import re # 引入re库来进行正则匹配

import json # 引入json 来进行json格式转化

def get(url): # 将请求方法封装,方便使用try语句捕捉异常

try:

response = requests.get(url) # 使用request的get方法获取响应流

if response.status_code == 200: # 处理响应流,如果不是200响应,则返回None

return response.text # 将响应流以文本方式返回

return None

except RequestException:

return None

def parse(text): # 将正则匹配方法封装,使代码模块化

pattern = re.compile('.*?list_num.*?>(.*?).*?pic.*?src="(.*?)".*?/></a>.*?name">.*?tuijian">(.*?).*?publisher_info.*?title="(.*?)".*?biaosheng.*?('

'.*?).*?', re.S) # 设定正则表达式匹配规则

items = re.findall(pattern, text) # 使用正则匹配对传入的text文本进行正则匹配,并将匹配成功的结果保存在items

return items # 将匹配的结果返回

if __name__ == "__main__":

target_url = "http://bang.dangdang.com/books/fivestars/" # 目标爬取的页面url

html = get(target_url) # 使用封装好的get方法将整个目标HTML页面爬取下来

for item in parse(html): # 使用封装好的正则匹配方法对目标HTML进行正则匹配,然后用一个循环将结果进行处理

print(item)

# 接下来是将结果写入txt文件的操作

with open('book.txt', 'a', encoding='UTF-8') as f:

f.write(json.dumps(item, ensure_ascii=False) + '\n') # 使用json库的dumps方法将列表对象转变成json对象(字符串),然后写入文本

f.close()

  爬虫开发第一步:网页分析

  爬虫开发的第一步是分析目标网页。首先,您需要知道您需要的目标数据在哪里。这里使用开发者工具查看整个页面结构,发现目标数据在一个元素中,所以开发的思路是获取这个页面的数据,然后获取数据的元素(里面有用的数据) .

  

  爬虫开发第二步,数据爬取

  经过第一次的分析,我们大概有了爬取的思路,那么我们现在要做的就是把这个页面爬下来。这时候请求库就出来了。使用请求的get()方法,可以向下爬取目标页面的html。获取目标页面的html(存储在代码中的html字符串中)。您可以进行下一步操作。

  爬虫开发第三步,数据处理

  使用正则表达式匹配代码中的目标数据(即之前分析的li元素中的有用数据)。并将其放入项目列表中。至此,数据爬取分析基本结束。只需保存抓取的结果。

  爬虫开发第四步,数据存储

  这里的编辑器使用python自带的文件读写函数将数据以json格式保存在一个名为 book.txt 的文件中。

  总结

  目前大部分的网络爬虫开发方式基本都是以上四步,python的爬虫结构也大同小异。但是,随着更多更好的工具的出现,以及网站反爬意识的加强,最新的爬虫往往需要更好的开发工具库和更多的配置。更多爬虫知识学习,可以到python课程学习(里面有爬虫课程)。

  注:小编警告,非法抓取网站数据会对网站日常运营造成一定的负担。这种行为也是违法的。请不要恶意抓取他人的网站数据。在python爬虫的学习过程中,尽量少爬高循环语句!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线