文章来因:
客官们,久等了,在家上网课,上的无聊,想看个电影放松一下,但是却不知道看啥电影,想起最近学习的爬虫,于是找电影天堂爬个电影信息,不就知道看那个电影了,上菜
实战内容:直接上代码,重要的地方有注释
各位客官,那个菜不和胃口,可以翻看前面的菜单
爬虫(1)爬虫概述,爬虫抓包工具
爬虫(2)urllib和parse库的介绍和常用函数介绍和使用
爬虫(3)request.Request类的介绍和简单爬虫实战
爬虫(4)ProxyHandler处理器(代理设置)
爬虫(5)一文搞懂cookie原理和使用(客官里面请,下饭文章吃饱再走)
爬虫(6)cookie信息保存到本地和加载
爬虫(7)一文搞懂爬虫的网络请求,requests库的使用
Xpath详解
爬虫实战(8)-爬取豆瓣网最近要上映的电影
本文中的很多注释,都是在爬虫时的一些思想过程,代码不是一蹴而就,需要细细分析,“步步为营”
#encoding: utf-8
import requests
from lxml import etree
import time
import csv
from retrying import retry
BASE_DOMAIN = 'https://www.dytt8.net/'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36',
}
@retry(stop_max_attempt_number=5)
def get_detail_urls(url):
'''获取一页的所有的电影的url'''
response = requests.get(url, headers=headers,timeout=3)
if response.status_code !=200:
raise requests.RequestException('My_request_get error!!!')
# 查看网页的编码方式,网页是什么编码方式就用什么方式解码
text = response.content.decode('gbk', 'ignore')
html = etree.HTML(text)
detail_urls = html.xpath("//table[@class= 'tbspan']//a/@href")
detail_urls = map(lambda url:BASE_DOMAIN+url,detail_urls)
return detail_urls
@retry(stop_max_attempt_number=5)
def parse_detall_page(url):
"""解析电影的详情页面的信息"""
movie ={
}
response = requests.get(url,headers=headers,timeout