python3网络爬虫开发实战学习笔记(二)------python3 XPATH爬 猫眼电影排名
生活随笔
收集整理的這篇文章主要介紹了
python3网络爬虫开发实战学习笔记(二)------python3 XPATH爬 猫眼电影排名
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我最近在看崔慶才老師的《python3 網(wǎng)絡爬蟲開發(fā)實戰(zhàn)》覺得挺不錯的,上面還有一個 用正則表達式爬取貓眼電影的電影排行榜 我練了一下,感覺不會很難,后來學到了xpath,就想用xpath去爬取,結果發(fā)現(xiàn)比正則表達式簡單多了
下面講一下基本原理,
這里要注意的是,貓眼電影加了反爬蟲(可能是拿它練手的人太多了吧),所以最好加上User-Agent
上代碼
# -*- coding: utf-8 -*- # @Time : 2018/9/24 12:04 # @Author : Tangweeiyang # @File : Maoyang_spider.py import requests from lxml import etree index=1 #獲取貓眼HTML def get_one_page(url):headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0',}respone =requests.get(url,headers=headers) # 一定要加上header否則,無法爬取貓眼的網(wǎng)頁if respone.status_code==200:return respone.textelse:return None # 獲取數(shù)據(jù) def parse_one_page(text):html=etree.HTML(text)movies_name=html.xpath('//p[@class="name"]//text()')movies_star=html.xpath('//p[@class="star"]//text()')movies_time = html.xpath('//p[@class="releasetime"]//text()')global indexwith open('Maoyan.txt','a+',encoding='utf-8') as file: #編碼格式一定要寫成'utf-8' 否則后面會亂碼for i in range(0,10):file.write('排名第%s'%index+'電影:\t'+movies_name[i].strip()+'\t'+movies_star[i].strip()+'\t'+movies_time[i].strip()+'\n')print(movies_name[i].strip(),movies_star[i].strip(),movies_time[i].strip())index+=1 if __name__ == '__main__':with open('Maoyan.txt', 'w', encoding='utf-8') as file:file.write('貓眼電影排名前100電影名單如下\n')url_start='https://maoyan.com/board/4?offset='for i in range(0,100,10):url=url_start+str(i) #有個小陷阱,不能寫成 url_start=url_start+str(i)text=get_one_page(url)parse_one_page(text)總結
以上是生活随笔為你收集整理的python3网络爬虫开发实战学习笔记(二)------python3 XPATH爬 猫眼电影排名的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器文件的备份工具,文件服务器备份工具
- 下一篇: 使用html语言检测鼠标微动是否发生双击