一.环境搭建
1.下载安装包
访问 Python官网下载地址:https://www.python.org/downloads//
下载适合自己系统的安装包:
我用的是 Windows 环境,所以直接下的 exe 包进行安装。
下载后,双击下载包,进入 Python 安装向导,安装非常简单,你只需要使用默认的设置一直点击"下一步"直到安装完成即可。
2.修改环境变量
- 右键点击"计算机",点击"属性";
- 然后点击"高级系统设置"-“环境变量”;
- 选择"系统变量"窗口下面的 “Path” ,添加 python 安装路径;
- 设置成功以后,在cmd命令行,输入命令"python",有显示则说明配置成功。
3.安装依赖模块
我们的爬取程序需要安装的依赖模块包括 requests,lxml,pymysql ,步骤如下:
- 进入python安装目录下的Scripts目录,点击地址栏输入“cmd” 打开命令行工具:
- 在这个路径下安装对应的 requests,lxml,pymysql 依赖:
- 需要输入的命令:
// 安装requests依赖
pip install requests
// 安装lxml依赖
pip install lxml
// 安装pymysql依赖
pip install pymysql
二.代码开发
开发 collectMovies.py
#!/user/bin env python
# 获取电影天堂详细信息
import requests
import time
from lxml import etree
import pymysql
requests.adapters.DEFAULT_RETRIES = 5
# 伪装浏览器
HEADERS ={
'User-Agent':'Mozilla/5.(Windows NT 10.0; WOW64) AppleWebKit/537.3(KHTML, like Gecko) Chrome/63.0.3239.13Safari/537.36',
'Host':'www.dy2018.com'
}
# 定义全局变量
BASE_DOMAIN = 'https://www.dy2018.com/'
# 获取首页网页信息并解析
def getUrlText(url,coding):
s = requests.session()
#print("获取首页网页信息并解析:", url)
respons = s.get(url,headers=HEADERS)
print("请求URL:", url)
if(coding=='c'):
urlText = respons.content.decode('gbk')
html = etree.HTML(urlText) # 使用lxml解析网页
else:
urlText = respons.text
html = etree.HTML(urlText) # 使用lxml解析网页
s.keep_alive = False
return html
# 获取电影详情页的href,text解析
def getHref(url):
html = getUrlText(url,'t')
aHref = html.xpath('//table[@class="tbspan"]//a/@href')
print("获取电影详情页的href,text解析```")
htmlAll = map(lambda url:BASE_DOMAIN+url,aHref) # 给每个href补充BASE_DOMAIN
return htmlAll
# 使用content解析电影详情页,并获取详细信息数据
def getPage(url):
html = getUrlText(url,'c')
moveInfo = {
} # 定义电影信息
mName = html.xpath('//div[@class="title_all"]//h1/text()')[0]
moveInfo['movie_name'] = mName
mDiv = html.xpath('//div[@id="Zoom"]')[0]
mImgSrc = mDiv.xpath('.//img/@src')
moveInfo['image_path'] = mImgSrc[0] # 获取海报src地址
if len(mImgSrc) >= 2:
moveInfo['screenshot'] = mImgSrc