用python写一个最简单的网络爬虫,豆瓣250

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

用python写一个简单的爬虫代码。爬取豆瓣电影排名前多少的的海报。

一、爬虫是什么?

网络爬虫(又称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

二、使用步骤

1.引入库

from urllib import request
import re
url = 'https://movie.douban.com/top250'
herders={
    
    
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/537.36 (KHTML,like GeCKO) Chrome/45.0.2454.85 Safari/537.36 115Broswer/6.0.3',
    'Referer':'https://movie.douban.com/',
    'Connection':'keep-alive'}
req = request.Request(url,headers=herders)
req = request.urlopen(req)
# type(req)
print(req.status)
# 应答的状态
con = req.read().decode('utf-8')
#使用正则匹配,找到目的数据,从可以理解为查找源,re.S有了之后就可以查找所有
rs = re.findall(r'<li>(.*?)</li>',con,re.S)  #findall 是一个查找函数
li = rs[0]
# print(li)
imginf = re.findall(r'<img(.*?)" class="">',li)
info = imginf[0]
print(info)
result = info.split(' alt=')
print(result[1])
result1 = result[1].split(' src="')
result2 = result1[1]
print(result2)
imgreq = request.urlopen(result2)
re_img = imgreq.read()
imgf = open(r'D:\\python爬虫\1.jpg','wb')
imgf.write(re_img)
imgf.close()

2.读入数据

src="https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2614500649.jpg" class="">
<img width="100" alt="无间道" src="https://img2.doubanio.com/view/photo/s_ratio_poster/public/p2564556863.jpg" class="">
<img width="100" alt="教父" src="https://img9.doubanio.com/view/photo/s_ratio_poster/public/p616779645.jpg" class="">
<img width="100" alt="龙猫" src="https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2540924496.jpg" class="">
<img width="100" alt="当幸福来敲门" src="https://img9.doubanio.com/view/photo/s_ratio_poster/public/p2614359276.jpg" class="">
<img width="100" alt="怦然心动" src="https://img1.doubanio.com/view/photo/s_ratio_poster/public/p501177648.jpg" class="">
<img width="100" alt="触不可及" src="https://img9.doubanio.com/view/photo/s_ratio_poster/public/p1454261925.jpg" class="">
25

总结

这里加

herders={
    
    
    'User-Agent':'Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/537.36 (KHTML,like GeCKO) Chrome/45.0.2454.85 Safari/537.36 115Broswer/6.0.3',
    'Referer':'https://movie.douban.com/',
    'Connection':'keep-alive'}
req = request.Request(url,headers=herders)

我本身也是一个小白,不加这个,每次都会禁止访问报一个这样的错误如下:
urllib.error.HTTPError: HTTP Error 418:
查了一下需要重新写headers。还有就是我的代码我自我感觉是没有问题的,访问的网站也每次都会叠加,但是一直都只访问,1-25的,后面的不进去,如果有大佬知道原因,还请帮助我指点一下迷津,谢谢!

猜你喜欢

转载自blog.csdn.net/weixin_45070922/article/details/109643301