目的:爬取豆瓣电影top250(网址:https://movie.douban.com/top250)和IMDB资料库电影top250(网址:http://www.imdb.cn/IMDB250/)电影相关信息(豆瓣:电影标题,年份,制片国家,影片类型和评分。IMDB资料库:电影名称,评分,影片类型和年份),将这些信息存储在两个.csv格式的文件中。
结果截图:(每份数据只取了前五个显示)
(一)关于代理IP池
爬虫通常都会用到代理IP,因为如果直接使用自己的裸IP,遇到反爬虫的网站有可能会被封IP,导致一段时间内都无法再访问该网站。虽然本程序不需要,但为了学习爬虫技术,爬取可用的代理IP还是很有必要的。参考博客:http://blog.csdn.net/fantacy10000/article/details/76724145
流程:找免费代理IP的网站,比如:http://www.xicidaili.com/nn/->爬取部分代理IP(够用即可)->找一个需要代理IP才能访问的url进行测试(因为不是所有代理IP都可以直接拿来用,有些可能已经失效了)->将可用IP及端口保存在ip.txt中。
源代码:
#encoding=utf-8
#本程序用于获取可用的代理IP
import urllib.request
from bs4 import BeautifulSoup
import socket
import time
User_Agent = 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0'
header = {}
header['User-Agent'] = User_Agent
#获取所有代理IP地址
def getProxyIp():
proxy = []
for i in range(1,2):
try:
url = 'http://www.xicidaili.com/nn/'+str(i)
req = urllib.request.Request(url,headers=header)
res = urllib.request.urlopen(req).read()