资讯专栏INFORMATION COLUMN

python正则表达式简单爬虫入门+案例(爬取猫眼电影TOP榜)

xiaowugui666 / 610人阅读

摘要:用迭代进行异步操作保存写入文件配置启动函数使用多进程加速一秒完成

用正则表达式实现一个简单的小爬虫 常用方法介绍 1、导入工具包
import requests
#导入请求模块
from flask import json
#导入json模块
from requests.exceptions import RequestException
#异常捕捉模块
import re
#导入正则模块
from multiprocessing import Pool
#导入进程模块
    
2、获取页面
response =requests.get(url)
url:当前需要爬取的链接
requests.get()获得页面
3、if response.status_code ==200:
#验证状态码
response.status_code:获取状态码
200:表示正常,连接成功
4、response.text:得到页面内容
例如:response =requests.get(url)
5、except RequestException:捕捉异常
try:
    ...
except RequestException:
    ...
6、pat = re.compile():编译正则表达式
#正则表达式基础知识即可
7、items =re.findall(pat,html)
pat:编译过的正则表达式
html:用response.text得到的页面内容
re.findall():找到所有匹配的内容
8、打开文件
with open("result","a",encoding="utf-8")as f
with as :打开自动闭合的文件并设立对象f进行操作
result:文件名字
a:打开方式是续写模式
encoding:编码格式
9、写入文件
 f.write(json.dumps(conrent,ensure_ascii =False)+"
")
 json.dumps:以json方式写入
10、简单进程
pool = Pool()
#创建进程池
pool.map(func,[i*10 for i in range(10)])
[i*10 for i in range(10)]:生成器,生成0到9的数字乘以10的结果,生成一个列表为[0,10,20....]
func:函数
map:将函数作用于列表每一个元素
11、yield:生成器 案例:用上面的工具完成爬去猫眼电影TOP榜
#__author:PL.Li
#导入需要使用的模块
import requests
from flask import json
from requests.exceptions import RequestException
import re
from multiprocessing import Pool
#尝试连接获取页面
def get_response(url):
    try:
        response =requests.get(url)
        if response.status_code ==200:
            return response.text
        return None
    except RequestException:
        return None
#正则匹配需要的内容
def re_one_page(html):
#超级长的正则表达式进行匹配,匹配到的是个集合。  
    pat =re.compile("
.*?board-index.*?">(/d+?).*?data-src="(.*?).*?name">(.*?)"class=.*?class="star">" "(.*?)

.*?releasetime">(.*?)

.*?integer">(.*?).*?fraction">(.*?).*?
",re.S) #用迭代进行异步操作 items =re.findall(pat,html) for item in items: yield { "index":item[0], "image":item[1], "title":item[2], "actor":item[3].strip()[3:], "time":item[4].strip(), "score":item[5]+item[6] } #保存写入文件 def write_file(conrent): with open("result","a",encoding="utf-8")as f: f.write(json.dumps(conrent,ensure_ascii =False)+" ") f.close() #配置启动函数 def main(offset): url ="http://maoyan.com/board"+str(offset) html=get_response(url) for item in re_one_page(html): write_file(item) #使用多进程加速一秒完成 if __name__ == "__main__": pool = Pool() pool.map(main,[i*10 for i in range(10)])

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40841.html

相关文章

  • Python3网络爬虫实战---27、Requests与正则达式抓取猫眼电影排行

    摘要:所以我们如果想获取电影,只需要分开请求次,而次的参数设置为,,,,即可,这样我们获取不同的页面结果之后再用正则表达式提取出相关信息就可以得到的所有电影信息了。上一篇文章网络爬虫实战正则表达式下一篇文章网络爬虫实战解析库的使用 上一篇文章:Python3网络爬虫实战---26、正则表达式下一篇文章:Python3网络爬虫实战---28、解析库的使用:XPath 本节我们利用 Reque...

    SwordFly 评论0 收藏0
  • requests+正则达式+multiprocessing多线程抓取猫眼电影TOP100

    摘要:本文介绍利用库库和正则表达式爬取猫眼电影电影的相关信息,提取出电影名称上映时间评分封面图片等信息,将爬取的内容写入到文件中。获取到不同的网页后使用正则表达式提取出我们要的信息,就可以得到电影信息了,可以使用多线程加速爬取。 本文介绍利用Requests库、multiprocessing库和正则表达式爬取猫眼电影TOP100电影的相关信息,提取出电影名称、上映时间、评分、封面图片等信息,...

    jifei 评论0 收藏0
  • 首次公开,整理12年积累的博客收藏夹,零距离展示《收藏夹吃灰》系列博客

    摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...

    Harriet666 评论0 收藏0
  • 零基础如何学爬虫技术

    摘要:楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,。本文来源知乎作者路人甲链接楚江数据提供网站数据采集和爬虫软件定制开发服务,服务范围涵盖社交网络电子商务分类信息学术研究等。 楚江数据是专业的互联网数据技术服务,现整理出零基础如何学爬虫技术以供学习,http://www.chujiangdata.com。 第一:Python爬虫学习系列教程(来源于某博主:htt...

    KunMinX 评论0 收藏0
  • Requests+正则达式爬取猫眼电影

    摘要:目标通过正则表达式爬取猫眼电影电影的排名名字电影封面图片主演上映时间猫眼评分,将爬取的内容写入文件中。为了加快爬取网页的速度,可以开启循环和多线程当需要爬取的信息很大时,这是一个不错的技巧。 目标 通过Request+正则表达式爬取猫眼电影TOP100电影的排名、名字、电影封面图片、主演、上映时间、猫眼评分,将爬取的内容写入文件中。 流程框架 进入到猫眼电影TOP100的页面,此时的U...

    30e8336b8229 评论0 收藏0

发表评论

0条评论

阅读需要支付1元查看
<