2-2 抓取银河演员网上的演员参演电影的信息进行抓取

脚本中用到的actors_use.csv为之前从豆瓣上抓取的演员列表。

 1 galaxyactors.py
 2 # -*- coding: utf-8 -*-
 3 #该脚本可以按照文件actors_use.csv中给出的演员的姓名
 4 #对银河演员网http://www.8fkd.com/上的演员参演电影的信息进行抓取
 5 #信息包括演员参演电影和电影日期,参演电影数量,和演员出道年份
 6 import requests
 7 import time
 8 import lxml.html
 9 import re
10 from pandas import DataFrame
11 import pandas as pd
12 import random
13
14 headers = {"User-Agent": ‘Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36‘}
15 def getDoc(url):
16     resp=requests.get(url,headers=headers)  #得到网页响应
17     time.sleep(0.1)   #暂停0.1秒,防止抓取太频繁被封IP
18     content=resp.text  #获取相应内容
19     doc = lxml.html.fromstring(content)  #得到xml格式的文本
20     return doc
21
22 def getInfo(url):
23     doc=getDoc(url)  #得到xml格式的文本
24     #得到演员演过的电影列表
25     temp1=doc.xpath(‘//*[@id="divLeft"]/div/div[2]/div/ul/li[1]/a/text()‘)
26     #得到演员演过的电影的日期的列表
27     temp2=doc.xpath(‘//*[@id="divLeft"]/div/div[2]/div/ul/li[2]/text()‘)
28     #如果抓取到的电影列表不为空
29     if temp1!=[]:
30         actor_m = []  #初始化该演员演过的电影列表
31         actor_d = []  #初始化该演员演过的电影的日期的列表
32         actor_y = []  #初始化该演员演过的电影的年份的列表
33         temp2=temp2[1:]  #由于数据结构的问题,temp2中除去第一项剩下的为电影日期
34         for s in temp1:
35             # print s.encode(‘utf-8‘)
36             actor_m.append(s.encode(‘utf-8‘))
37         for s in temp2:
38             # print s.encode(‘utf-8‘)
39             actor_d.append(s.encode(‘utf-8‘))
40             # 取每部电影日期字符串的前四项,然后转换成int数据类型,就是所演电影的年份
41             actor_y.append(int(s.strip()[:4]))
42         # print actor_m
43         # print actor_d
44         # print actor_y
45         startYear=min(actor_y)  #演员出道年份就是演过电影的年份中的最小项
46         movieNum=len(actor_m)  #统计演员演过的电影数量
47         actor_info={‘movies‘:actor_m,‘date‘:actor_d}  #将演员演过的电影和电影的年份生成字典格式数据
48         # print actor_info
49         # print startYear
50         # print movieNum
51         return actor_info,movieNum,startYear  #返回演员演过的电影信息,电影数,出道年份三个数据
52     else:
53         return ‘-‘,‘-‘,‘-‘  #如果没有抓取到内容,则三项都返回‘-‘
54     # print temp3
55     # print chardet.detect(temp[0].encode(‘utf-8‘))
56
57 df=pd.read_csv(‘actors_use.csv‘)
58 infoList = []  #初始化演员参演电影信息列表
59 numList = []  #初始化演员演过电影的数目列表
60 yearList = []  #初始化演员出道年份列表
61 actorList=[]  #初始化演员姓名列表
62 for i in range(0,3566):
63     #演员电影页网址为‘http://yy.8fkd.com/‘加演员姓名拼音,加‘/DianYing‘
64     url=‘http://yy.8fkd.com/‘+str(df.ix[i,‘actors_id‘])+‘/DianYing‘
65     try:
66         actor_info,movieNum,startYear=getInfo(url)  #调用getInfo函数
67     except:  #如果出错,则将三项标记为error
68         actor_info, movieNum, startYear=(‘error‘,‘error‘,‘error‘)
69     finally:
70         #对演员参演电影信息列表、参演电影数列表、出道年份、演员姓名进行数据添加操作
71         infoList.append(actor_info)
72         numList.append(movieNum)
73         yearList.append(startYear)
74         actorList.append(df.ix[i,‘leadingRoles‘])
75         tempDict={‘actors‘:actorList,‘info‘:infoList,‘moviesNum‘:numList,‘startYear‘:yearList}
76         df1=DataFrame(tempDict)  #将结果数据转换为DataFrame数据格式
77         df1.to_csv(‘test.csv‘,index=False)  #写入文件
78         print i+1,‘:‘,df.ix[i, ‘leadingRoles‘],‘(‘,movieNum,‘)‘  #打印标记
时间: 2025-01-01 07:46:51

2-2 抓取银河演员网上的演员参演电影的信息进行抓取的相关文章

使用selenium动态渲染爬取拉勾网上450个java职位的信息

开始这个小项目的时候要确保你的电脑中有装上selenium以及相应的浏览器驱动,还有别忘了Mongodb数据库 我们首先打开拉勾网的官网查看下基本的页面元素 当我在搜索框中输入java的时候,url如下,当我想用下面的url进行抓取的时候,我发现事情并不简单. 我点击下一页的时候发现,url并没有变化,所以并不能用最基本的抓取方法了,而改为ajax请求进行抓取 当我查看ajax请求的时候,发现事情又不简单的了,这个分页的请求带的参数时Form data,也就是表单形式的参数, 所以,拉勾网上的a

1-2 爬取猫眼票房网上的电影票房信息

1 piaofang.py 2 #-*- coding:utf-8 -*- 3 ''' 4 该脚本可以抓取猫眼票房网站上的电影票房数据 5 使用的数据为豆瓣上爬取的电影,见文件:doubanMovies_IMDBScore.csv 6 ''' 7 import requests 8 import lxml.html 9 import time 10 from pandas import DataFrame 11 import pandas as pd 12 13 headers={'User-A

【爬虫问题】爬取tv.sohu.com的页面, 提取视频相关信息

尝试解决下面的问题 问题: 爬取tv.sohu.com的页面, 提取视频相关信息,不可用爬虫框架完成 何为视频i关信息?属性有哪些? 需求: 做到最大可能的页面覆盖率 *使用httpClient 模拟获取页面HtmlText源码信息,正则出源码视频URL解析类HtmlText2URLlist.ashx. 正则式:href=\"(.*?)\" 选择重要的信息进行存储 选择合适的数据存储方式,便于后续使用 数据库字段 ID.URL.IsSuccess.Title.Isdelete.Vide

【抓包分析】Charles和 夜神模拟器 对安卓应用进行抓包分析

准备工具 : 1 Charles   : https://www.charlesproxy.com  (收费) 2 夜神模拟器  : https://www.yeshen.com  (免费) 2 模拟器设置 或者 点击wifi 进入 鼠标长按wifi 进入修改界面(不要点击.鼠标左键点击按住 停留几秒) 点击 修改网络  如下图所示地址,填写你电脑的ip地址 (不确定的可以  cmd   ipconfig 查看) 设置完成 3  抓包 运行 charles 可以看到所有夜神模拟器上边的接口抓包数

足球竞猜网页的信息进行爬取并且对信息分析

说明 一.项目介绍 对于足球竞猜网页的信息进行爬取并且对信息分析 二.部分代码展示 import requests from lxml.html import etree headers = {'Referer': 'http://www.okooo.com/jingcai/', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.10

对于房天下租房信息进行爬取

对于房天下租房信息进行爬取 代码 import re import requests from lxml.html import etree url_xpath = '//dd/p[1]/a[1]/@href' title_xpath = '//dd/p[1]/a[1]/@title' data_xpaht = '//dd/p[2]/text()' headers = { 'rpferpr': 'https://sh.zu.fang.com/', 'User-Agent': 'Mozilla/5

爬取赶集网二手物品下所有物品的信息

四周爬虫课第二周的练习,爬取赶集网二手物品下所有物品的信息.大致思路:1.爬取频道页url:2.爬取商品详情页url,写入mongodb,url_list表:3.从url_list表读取url,爬取商品信息,写入mongodb,p_info表 分成3个py文件:1.channel_url.py,获取频道页url:2.page_parse.py,主要是2个爬虫函数,分别完成2个数据表的写入:3.main.py,主程序文件,也就是本文件,开启多进程,完成整个工作 最后顺利完成任务,感觉现在赶集真不行

2-1 尝试对豆瓣上的演员参演电影的电影名和上映日期进行抓取

1 step1_actorsDate.py 2 # -*- coding: utf-8 -*- 3 import requests 4 import pandas as pd 5 import lxml.html 6 import time 7 from pandas import DataFrame 8 9 headers = {"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,

java网络爬虫实现信息的抓取

转载请注明出处:http://blog.csdn.NET/lmj623565791/article/details/23272657 今天公司有个需求,需要做一些指定网站查询后的数据的抓取,于是花了点时间写了个demo供演示使用. 思想很简单:就是通过Java访问的链接,然后拿到html字符串,然后就是解析链接等需要的数据. 技术上使用Jsoup方便页面的解析,当然Jsoup很方便,也很简单,一行代码就能知道怎么用了: [java] Document doc = Jsoup.connect("h