Re+Selenium新手爬取猫眼Top 100
来源:互联网 发布:淘宝兼职要身份证干么 编辑:程序博客网 时间:2024/05/17 00:51
看完了视频后,照猫画虎的把源码写了,有不懂的地方做了注释,以后还是把知识点或者难的地方写在博客上,也方便查询一些,上次的.format运算当时记得住现在就忘了,结果在写进程池之前只能用最弱智的for循环。。。
对于源代码的爬取,猫眼有最初级的反爬取措施,所以无法直接用request来进行解析,所以用了之前看到的selenium库来得到源码,其实这些用美丽汤很好写,但是也算是练习Re了。
下面是代码
from selenium import webdriver#引入浏览器对象from selenium.webdriver.common.by import Byfrom selenium.webdriver.common.keys import Keysfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.webdriver.support.wait import WebDriverWaitfrom selenium.webdriver import ActionChains#交互动作,如拖拽import timefrom multiprocessing import Poolimport reimport jsondef get_one_page(url):#得到网页源代码 try: browser = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe") browser.get(url) return browser.page_source finally: browser.close()def parse_one_page(html): pattern = re.compile('<dd>.*?board-index.*?>(\d+)</i>.*?data-src="(.*?)".*?name"><a' +'.*?>(.*?)</a>.*?star">(.*?)</p>.*?releasetime">(.*?)</p>' +'.*?integer">(.*?)</i>.*?fraction">(.*?)</i>.*?</dd>',re.S)#匹配正则表达式 items=re.findall(pattern,html) for item in items:#yield的用法,函数生成器的用法 yield{ 'index':item[0], 'image':item[1], 'title':item[2], 'actor':item[3].strip()[3:],#去除空格 'time':item[4].strip()[5:], 'score':item[5]+item[6] }def write_to_file(content): with open('C:/Users/张启航/Desktop/res.txt','a',encoding='utf-8') as f: f.write(json.dumps(content,ensure_ascii=False)+'\n')# dumps是将字典(dict)格式转化成字符串(str)格式 f.close()def main(offset):#对单个给定offset的网页进行读取 url = 'http://maoyan.com/board/4?offset='+str(offset) print(url)#测试网址输出是否正确 the_source=get_one_page(url) for item in parse_one_page(the_source): write_to_file(item)if __name__=='__main__': pool=Pool()#引入进程池,加快程序 pool.map(main,[i*10 for i in range(10)])
主要有几个部分,因为python是大一学的,而且学的很水,所以不扎实,比如.format和yield(函数生成器),另外json之前也没接触过。写完这篇之后,我会把这三个点重新写一下,当作积累。在学习爬虫之余顺便把python有意思的地方再来一遍。
阅读全文
0 0
- Re+Selenium新手爬取猫眼Top 100
- 利用requests和正则表达式re爬取猫眼电影top100,并下载图片
- python正则表达式简单爬虫入门+案例(爬取猫眼电影TOP榜)
- 猫眼电影TOP100爬取
- 猫眼电影TOP100爬取
- 猫眼电影 票房爬取
- 爬取猫眼电影榜单Top100
- 猫眼爬取专业评分的python
- 【爬虫】爬取猫眼电影top100
- Python爬取猫眼电影TOP100
- Python爬虫-爬取猫眼电影Top100榜单
- 爬取猫眼电影专业版实时数据排行榜
- Requests+正则表达式爬取猫眼电影top100
- requests和正则爬取猫眼的数据
- 爬取猫眼top100电影并存储在mysql中
- 使用selenium动态爬取
- Selenium+PhantomJS 爬取页面
- 豌豆荚排行榜爬取(selenium)
- 【PHP自学笔记】第六章 Web技术
- 怎么彻底删除 免安装版的mysql
- 从零开始学C++之运算符重载(一):以成员函数方式重载、以友元函数方式重载
- 数据预处理之scaling
- Python之正则表达式
- Re+Selenium新手爬取猫眼Top 100
- [Maven Settings.xnl 开发最优配置]
- 欢迎使用CSDN-markdown编辑器
- 决策树和CART决策树
- rxjava2代码实战1--Map操作符
- Hibernate三种持久态
- 7-1 求二叉树的叶子结点个数
- 正向代理与反向代理
- 从乌镇大佬“饭局的诱惑”中我们可以解读出什么?