<代码>导入请求
进口pymysql
导入的时间
进口再保险
进口xlwt
从lxml进口etree
头={“用户代理”:“Mozilla/5.0 (Windows NT 6.1;Win64;AppleWebKit x64)/537.36 (KHTML,像壁虎)Chrome/69.0.3497.92 Safari/537.36”,
“饼干”:“gr_user_id=c6f58a39 ea25 - 4 f58 b448 - 545070192 c4e; 59 a81cc7d8c04307ba183d331c373ef6_gr_session_id=e8e4b66f - 440 - 4 ae7 a76a fe2dd2b34a26; 59 a81cc7d8c04307ba183d331c373ef6_gr_last_sent_sid_with_cs1=e8e4b66f - 440 - 4 ae7 a76a fe2dd2b34a26; 59 a81cc7d8c04307ba183d331c373ef6_gr_last_sent_cs1=N % 2 fa; a81cc7d8c04307ba183d331c373ef6_gr_session_id_e8e4b66f 59 - 440 - 4 ae7 a76a fe2dd2b34a26=true; grwng_uid=9 ec14ad9 - 5 ac0 - 4 bb1组- 81 c1 - bc60d2685710; abtest_ABTest4SearchDate=b; xzuuid=79426 b52; _uab_collina=154660443606130958890473; TY_SESSION_ID=907 f32df c060 - 49 ca b945 - 98215 cc03475; rule_math=pvzq3r06hi '}
康涅狄格州=pymysql。连接(主机=' localhost '用户=?passwd=momiao5201314, db=doubanmovie,端口=3306,charset=use utf8)
光标=conn.cursor() #创建光标对象
“‘
#创建一个工作簿设置编码
工作簿=xlwt。工作簿(编码=皍tf - 8”)
#创建一个工作表
工作表=工作簿。add_sheet(“我的工作表”)
#定义表头
头=[“movie_name”,“导演”,“演员、风格”,“国家”,“release_time”,“时间”,“分数”)
对h范围(len(头)):
workbook.write (0 h头[h])
“‘
def get_movie_url (url):
html=requests.get (url,头=标题)
选择器=etree.HTML (html.text)
movie_urls=selector.xpath ('//div [@class="高清"]//@href”)
在movie_urls movie_url:
#打印(movie_url)
get_movie_info (movie_url)
def get_movie_info (url):
html=requests.get (url,头=标题)
选择器=etree.HTML (html.text)
试一试:
movie_name=selector.xpath ('//* [@ id="内容"]/h2/跨度[1]/text()的)# 1电影名称
#打印(movie_name)
导演=selector.xpath ('//* [@ id="信息"]/[1]/跨[2]//text() ') # 2导演
#打印(主任)
演员=selector.xpath ('//* [@ id="信息"]/[3]/跨[2]”)[0]# Xpath疑问?
演员=actors.xpath (string()) # 3演员
#打印(演员)
风格=re.findall (' & lt;跨属性=皏:流派”祝辞(. * ?)& lt;/span>”, html.text, re.S) [0] + re.findall (' & lt;跨属性=皏:流派”祝辞(. * ?)& lt;/span>”, html.text, re.S)[1] # 4类型
#打印(风格)
国家=re.findall (' & lt;跨类=皃l”在制片国家/地区:& lt;/span> (. * ?) & lt; br/祝辞’,html.text, re.S) # 5制片地区
#打印(国家)
release_time=re.findall(“上映日期:& lt;/span>。* ?祝辞(. * ?)& lt;/span>”, html.text, re.S) # 6上映时间
#打印(release_time)
时间=re.findall (' & lt;跨类=皃l”在片长:& lt;/span>。* ?祝辞(. * ?)& lt;/span>”, html.text, re.S) # 7片长
#打印(时间)
分数=selector.xpath ('//* [@ id=" interest_sectl "]/div [1]/div[2]/强/text()的)# 8评分
#打印(分数)
print (str (movie_name))
# sql='插入doubanmovie(名称、导演、演员、风格、国家release_time,时间,分数,)值(“{}”,“{}”,“{}”,“{}”,“{}”,“{}”,“{}”,“{}”)“.format (movie_name、导演、演员、风格、国家release_time,时间,分数)#多一个逗号
游标。执行(“插入doubanmovie(名称、导演、演员、风格、国家release_time,时间,分数)值(% s, % s % s, % s, % s, % s, % s, % s)”, (str (movie_name) str(主任),str(演员),str(风格),str(国家),str (release_time) str(时间),str(分数)))
除了IndexError:
通过
if __name__==癬_main__”:
url=['=' https://movie.douban.com/top250?start={},过滤器.format (num) num范围内(0250年25)]
为在url网址:
get_movie_url (url)
time . sleep (2)
conn.commit() 代码>
Python爬取豆瓣高分电影前250名