找回密码
 会员注册
查看: 17|回复: 0

Python采集海外电影信息,Roxlabs全球IP代理轻松搞定

[复制链接]

9

主题

0

回帖

28

积分

新手上路

积分
28
发表于 2024-9-10 04:26:35 | 显示全部楼层 |阅读模式
一、为什么要学会应用IP代理技术二、采集海外电影信息爬虫实战2.1选择目标网站并生成代理2.2编写爬虫并设置代理2.3运行爬虫2.4处理数据2.5完整代码三、Roxlabs代理及优势分析四、快速应用Roxlabs代理功能4.1领免费流量4.2代理类型4.3获取代理4.4配置代理设置4.5开始数据采集五、总结一、为什么要学会应用IP代理技术在数字化飞速发展的今天,网络已成为人们获取信息、交流数据的重要平台,数据成为了最宝贵的资源之一。然而许多网站和服务出于各种原因,使得有价值的数据变得难以获取;此外在互联网时代,个人隐私几乎成为了奢侈品。我们每一次浏览网站、搜索内容都可能被第三方追踪和记录,这不仅侵犯了我们的隐私权,还可能带来安全风险。IP代理技术的出现为以上难题提供了解决方案。简单来说,IP代理就是将客户端的请求集中到代理服务器上,然后由代理服务器来处理这些请求并返回结果。由代理服务器代替用户与目标服务器进行通信,使得我们的网络行为更加私密,从而保护个人信息不被滥用。不仅如此,通过IP代理还可以轻松获取到更多的全球公开数据资源。二、采集海外电影信息爬虫实战在本实战案例中,我们将基于Python使用RoxlabsIP代理获取海外的100部电影信息。2.1选择目标网站并生成代理我们爬取的目标网址是flickchart。这是一个结合了电影评价、排行与社交功能的综合性电影类网站。进入Roxlabs后台设置白名单。这一步是必要的,设置白名单是为了保证本机IP可以对目标网站进行正常的操作。进入Roxlabs后台,选择“IP白名单”模块,将本机IP填入;随后生成代理,相关信息会在Roxlabs的“获取代理”模块自动展现;此时前期准备工作就完成了。2.2编写爬虫并设置代理先写一个简单的爬虫框架;#使用requests库获取网页原始内容importrequests#首先定义爬取的网址target_url="https://www.flickchart.com/charts.aspx?perpage=100"#设置请求头headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/92.0.4515.159Safari/537.36"}response=requests.get(target_url,headers=headers)ifresponse.status_code==200:print(response.text)12345678910111213141516随后添加和设置代理,这里需要用到Roxlabs生成的代理列表;#使用requests库获取网页原始内容importrequests#首先定义爬取的网址target_url="https://www.flickchart.com/charts.aspx?perpage=100"#设置请求头headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/92.0.4515.159Safari/537.36"}#设置代理proxies={"http":"http://pr.roxlabs.cn:4600:user-jingzhi001-sessid-T5mEkR32-sesstime-10-keep-true:jingzhi001","https":"https://pr.roxlabs.cn:4600:user-jingzhi001-sessid-T5mEkR32-sesstime-10-keep-true:jingzhi001"}response=requests.get(target_url,headers=headers,proxies=proxies)ifresponse.status_code==200:print(response.text)1234567891011121314151617181920212.3运行爬虫运行代码,可以看到结果正常输出;最后试着查找一部电影名字看看是否获取到了所需要的数据,比如搜《TheEmpireStrikesBack》;搜索发现结果无误;可以查出结果说明爬虫没有问题,已经获得需要的数据,接下来就应该处理数据了。2.4处理数据处理网页数据这里使用的工具是BeautifulSoup。步骤如下:导入包;#使用BeautifulSoup库解析网页内容frombs4importBeautifulSoup12'运行运行解析网页;ifresponse.status_code==200:soup=BeautifulSoup(response.text,"html.parser")12确定网页结构;开始解析,首先定义一个电影列表;movie_list=[]1'运行运行然后解析数据;#寻找元素div,类名为chartEntry,下面的movieInfoformovieinsoup.find_all("div",class_="chartEntry"):#将类名movieTitle的文本内容获取到movie_title=movie.find("h2",class_="movieTitle")#电影名是movie_title下第一个a标签的文本内容movie_name=movie_title.find("a").text#movie_name有两行,第一行是电影名,第二行是链接,拆分_,movie_name,movie_url,_=movie_name.split("\n")#电影上映年份是在movie_title的第二个a标签的文本内容movie_year=movie_title.find_all("a")[1].text#p标签类名为director,下的第一个a标签文本内容是导演名movie_director=movie.find("p",class_="director").find("a").text123456789101112接下来再加入电影列表;movie_list.append({"name":movie_name,"year":movie_year,"director":movie_director,"url":movie_url,})123456由于这个网站一共有5页,所以这里将target_url修改了一下;#首先定义爬取的网址page_index=1target_url=f"https://www.flickchart.com/charts.aspx?perpage=100&page=${page_index}"123'运行运行然后将爬取的这里定义成了一个函数;defget_movie_list():globalpage_index,target_urlresponse=requests.get(target_url,headers=headers)ifresponse.status_code==200:#...后面的代码123456输出电影;forpage_indexinrange(1,5):get_movie_list()12为了方便,最后将爬取到的电影写入CSV文件;#写出到csv文件importcsvwithopen("movie_list.csv","w",newline="",encoding="utf-8")asf:writer=csv.DictWriter(f,fieldnames=["name","year","director","url"])writer.writeheader()writer.writerows(movie_list)print("写入完成")12345678最后运行代码,结果如下,电影列表已经列了出来;打开CSV文件看看,效果不错。至此整个海外电影爬虫实战结束。2.5完整代码#使用requests库获取网页原始内容importrequests#使用BeautifulSoup库解析网页内容frombs4importBeautifulSoup#写出到csv文件importcsv#首先定义爬取的网址page_index=1target_url=f"https://www.flickchart.com/charts.aspx?perpage=100&page=${page_index}"#设置请求头headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/92.0.4515.159Safari/537.36"}#设置代理#proxies={#"http":"http://pr.roxlabs.cn:4600:user-jingzhi001-sessid-T5mEkR32-sesstime-10-keep-true:jingzhi001",#"https":"https://pr.roxlabs.cn:4600:user-jingzhi001-sessid-T5mEkR32-sesstime-10-keep-true:jingzhi001"#}movie_list=[]defget_movie_list():globalpage_index,target_urlresponse=requests.get(target_url,headers=headers)ifresponse.status_code==200:soup=BeautifulSoup(response.text,"html.parser")#寻找元素div,类名为chartEntry,下面的movieInfoformovieinsoup.find_all("div",class_="chartEntry"):#将类名movieTitle的文本内容获取到movie_title=movie.find("h2",class_="movieTitle")#电影名是movie_title下第一个a标签的文本内容movie_name=movie_title.find("a").text#movie_name有两行,第一行是电影名,第二行是链接,拆分_,movie_name,movie_url,_=movie_name.split("\n")#电影上映年份是在movie_title的第二个a标签的文本内容movie_year=movie_title.find_all("a")[1].text#p标签类名为director,下的第一个a标签文本内容是导演名movie_director=movie.find("p",class_="director").find("a").textmovie_list.append({"name":movie_name,"year":movie_year,"director":movie_director,"url":movie_url,})page_index+=1forpage_indexinrange(1,5):get_movie_list()#打印电影列表formovieinmovie_list:print(movie)withopen("movie_list.csv","w",newline="",encoding="utf-8")asf:writer=csv.DictWriter(f,fieldnames=["name","year","director","url"])writer.writeheader()writer.writerows(movie_list)print("写入完成")123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263三、Roxlabs代理及优势分析在以上的案例当中,我们的整个过程是基于Roxlabs代理实现的,用到了Roxlabs的IP白名单功能和动态住宅IP资源。作为一个专注于为用户提供高质量数据采集代理资源的服务平台,我经过实际上手使用和综合多家IP代理商进行对比,发现Roxlabs具有多重优势:全球覆盖和超大资源量。Roxlabs的代理网络遍布全球200多个国家和地区,拥有超过1000万的真实住宅IP资源。这种广泛的覆盖和庞大的IP资源池使得Roxlabs能够满足多种业务需求。不限并发会话。Roxlabs支持无限并发会话,高带宽,无需额外费用,满足您的业务拓展需求。城市级定位。Roxlabs提供国家、城市和州级精准定位IP,支持HTTP(S)/Socks5代理协议。自定义IP时效。Roxlabs动态住宅支持1-1440分钟自定义IP时效,可以根据业务需求自主设定会话时长,自由设置API提取导出格式。数据统计功能。Roxlabs个人中心实时统计代理使用数据,我们可以随时查看账户余额信息和流量使用情况,支持添加多个IP白名单和认证账户,更有IP管理、认证账户管理等功能。高性价比。动态住宅流量套餐支持免费试用,流量不过期,低至¥5/G。可以根据自己的需求选择不同的代理类型和套餐,Roxlabs还提供定制化服务,满足特定业务场景的个性化需求。基于以上优势,Roxlabs在爬虫采集、跨境电商、市场调研、网络安全等方面都有着相当成熟的解决方案。四、快速应用Roxlabs代理功能为了让大家更深入的了解Roxlabs,在这里快速演示一下它的使用功能。4.1领免费流量访问Roxlabs的官方网站roxlabs.cn进行注册并登录账号;注册成功后进行实名认证,认证完成流量直接到账,个人认证赠送500MB流量,企业认证赠送1G流量;4.2代理类型根据业务需求选择适合自己的代理套餐,Roxlabs为用户提供动态住宅IP、静态住宅IP、独享数据中心IP等多种优质代理资源;4.3获取代理获取代理有两种方式,一种是API提取,另一种是账密认证。现在演示账密认证方式获取代理;使用账密认证首先需要在Roxlabs个人后台“认证账户”板块添加认证账户;然后进入“获取代理”板块,选择“账号密码验证”生成方式,选择我们刚刚添加的认证账户;此时获取到的IP就显示在本页面的代理列表中了;4.4配置代理设置使用代码(Python)设置代理如下:import_threadimporttimeimportrequests#设置请求头headers={"Accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8","User-Agent":"Mozilla/5.0(iPhone;CPUiPhoneOS10_3_3likeMacOSX)AppleWebKit/603.3.8(KHTML,likeGecko)Mobile/14G60MicroMessenger/6.5.19NetType/4GLanguage/zh_TW",}#测试地址mainUrl='https://ipinfo.io'deftestUrl():#设置帐密代理proxy={'http':'http://认证账户名:认证账户密码@代理服务器地址:代理服务器端口','https':'http://认证账户名:认证账户密码@代理服务器地址:代理服务器端口',}try:res=requests.get(mainUrl,headers=headers,proxies=proxy,timeout=10)print(res.status_code,res.text)exceptExceptionase:print("访问失败",e)pass#开启10个线程进行测试foriinrange(0,10):_thread.start_new_thread(testUrl,())time.sleep(0.1)time.sleep(10)12345678910111213141516171819202122232425262728293031324.5开始数据采集代理设置完成后就可以开始进行数据采集了。选择自己擅长的采集工具,在进行数据采集的过程中,我们也可以随时访问Roxlabs的个人中心,查看代理的使用情况。Java、Node、PHP等代码设置方式参见Roxlabs官网。五、总结作为一个专注于提供高质量住宅IP代理服务的平台,Roxlabs为用户提供了一个全球范围访问网络的新视角。其全球覆盖、高质量服务、强大的数据采集能力以及严格的合规性和安全性保障,使得它成为了许多企业和个人在进行在线活动和数据采集时的首选工具。无论是保护个人隐私还是进行商业分析,Roxlabs都能够为用户提供专业、可靠的代理解决方案。注册领取免费流量,更多代理应用教程详见Roxlabs官网。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-8 11:34 , Processed in 0.408539 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表