【Python学习记录】爬虫笔记1——爬猫眼电影Top100排行

5 篇文章 0 订阅
3 篇文章 0 订阅

学校开了一周的Python课,上个暑期的时候自己看了崔庆才的python3网络爬虫开发实战,但是很多都没有理解,只是初步了解了很多概念,很多实战的东西自己看完都比较虚,尤其是从头开始看那本书时,是从urllib这个库开始的,后来又安装了requests库,总的来说是当你学完一个东西并且敲了很多代码后,发现事实上有很多轮子都造好了…你可以用更方便的库去写代码,这样效率更高也更简单。
但是事实上这些简单的库可能会用的更熟练,我们学的目的首先是要解决问题然后再是提高效率。
所以学python还是建议安装Anaconda3,虽然很大,但是后续安装各种库都非常方便,而且原生的
python有些库是不支持的。
先上代码
import re
import urllib.request
import urllib.parse
import csv
reg = ‘

. ?title="(.?)". ?class=“star”>(.?)

. class=“releasetime”>(.?)’
class QueryRank() :
def init(self) :
self.headers = {
“User-Agent”: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
“Chrome/75.0.3770.100 Safari/537.36” }
self.base_url = “ https://maoyan.com/board/4?offset=
def deal_url(self) :
for i in range(0, 100, 1) :
url = self.base_url + str(i)
req = urllib.request.Request(url, headers = self.headers)
res = urllib.request.urlopen(req)
html = res.read().decode(“utf-8”)
pattern = re.compile(reg, re.S)
result_rank = re.findall(reg, html, re.S)
param = result_rank[0]
param1 = param[0].strip()
param2 = param[1].strip()
param3 = param[2].strip()
print(param1, param2, param3)
result_list = [param1, param2, param3]
with open(“rank.csv”, “a”, newline = “”, encoding = ‘ansi’) as f :
writer = csv.writer(f, dialect = “excel”)
writer.writerow(result_list)
rank = QueryRank()
rank.deal_url()
然后分析思路。
大致可以分为4个部分
1观察源码写正则
如果是要爬取多页的话可以看地址栏注意参数的变化
在这里插入图片描述
在这里插入图片描述
这是第一页跟第二页的地址栏的参数的变化,再翻几页后可以知道这里的board4指的是top100榜单,而这个offset的值的变化是0-100,就翻页来看的话是10个10个变化,但事实上你自己输入的话可以这个可以一个个变化,也就是说分别对应着100榜单中的每一个电影,分析完之后就可以开始第二部
2爬取源码
3根据一开始的分析的参数的变化进行url拼接方便每一次爬
4抓取每一次想要的信息并保存
****
首先是用浏览器打开网站然后按F12进入开发者模式

在这里插入图片描述此处的标记非常重要,标记的地方选中后,鼠标可以拖到左边的web部分,选中相应的部分就可以直接跳转到对应的HTML代码,(这个书上是没有讲的,知道这个之后,爬这些东西就会方便多了,至少写正则会方便很多)
正则表达式不是唯一的,可以写的稍微详细一点,需要特别注意的就是贪婪匹配和非贪婪匹配,很多时候出问题,都是因为没有用非贪婪匹配.*?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值