用html通过python调用mysql_HTTP协议与使用Python获取数据并写入MySQL
一、Http協(xié)議
二、Https協(xié)議
三、使用Python獲取數(shù)據(jù)
(1)urlib
(2)GET請求
(3)POST請求
四、爬取豆瓣電影實戰(zhàn)
1.思路
(1)在瀏覽器中輸入https://movie.douban.com/j/search_tags?type=movie會得到顯示的電影的分類標簽,下面以“熱門”為例
{"tags":["熱門","最新","經(jīng)典","可播放","豆瓣高分","冷門佳片","華語","歐美","韓國","日本","動作","喜劇","愛情","科幻","懸疑","恐怖","成長"]}
(2)在瀏覽器中輸入https://movie.douban.com/進入豆瓣首頁,然后下拉到“最近熱門電影”,然后點擊“更多”,瀏覽器中顯示的url為https://movie.douban.com/explore#!type=movie&tag=熱門&sort=recommend&page_limit=20&page_start=0,即表示熱門電影的第一頁中的20部影片。
(3)下拉至底部,點擊“顯示更多”一下,則此時的url變?yōu)閔ttps://movie.douban.com/explore#!type=movie&tag=熱門&sort=recommend&page_limit=20&page_start=20,也就表示第二頁中的20部影片。
(4)在瀏覽器中輸入下面的url會得到20個json格式的字符串:https://movie.douban.com/j/search_subjects?type=movie&tag=熱門&sort=recommend&page_limit=20&page_start=0。
(5)針對每個url,如果返回的結(jié)果中存在數(shù)據(jù),那么就將page_start增加20繼續(xù)執(zhí)行GET請求,直到不再返回數(shù)據(jù)為止。
2.代碼實現(xiàn)
import urllib.request
from urllib import parse
import json
# 獲得全部電影標簽
url = ‘https://movie.douban.com/j/search_tags?type=movie‘
# 需要將中文漢字轉(zhuǎn)化成十六進制的形式,否則會報編碼錯誤
print(parse.quote(‘熱門‘))
request = urllib.request.Request(url=url)
response = urllib.request.urlopen(request, timeout=20)
# 獲得json形式的字符串
result = response.read()
print(result)
# 將json形式的字符串解析成字典
result = json.loads(result)
print(result)
# 將取字典的標簽字段存儲到列表中
tags = result[‘tags‘]
print(tags)
# 定義一個列表存儲電影的基本信息
movies = []
# 分別處理每個tag
for tag in tags:
print(tag)
tag = parse.quote(tag)
print(tag)
start = 0
# 不斷請求,直到返回結(jié)果為空
while True:
# 拼接需要請求的url
url = ‘https://movie.douban.com/j/search_subjects?‘ ‘type=movie&tag=‘ + tag + ‘&sort=recommend&page_limit=20&page_start=‘ + str(start)
print(url)
request = urllib.request.Request(url=url)
response = urllib.request.urlopen(request, timeout=20)
# 獲得json形式的字符串
result = response.read()
print(result)
# 將json形式的字符串解析成字典
result = json.loads(result)
print(result)
# 將取字典的標簽字段存儲到列表中
result = result[‘subjects‘]
print(result)
# 循環(huán)跳出條件
if len(result) ==0:
break
# 將每一條記錄都添加到movies列表中
for item in result:
movies.append(item)
# 修改起始位置,相當于點擊"顯示更多"
start += 20
print(len(movies))
原文:https://www.cnblogs.com/BigJunOba/p/9454316.html
總結(jié)
以上是生活随笔為你收集整理的用html通过python调用mysql_HTTP协议与使用Python获取数据并写入MySQL的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python不定长参数举例说明_Pyth
- 下一篇: python网课观后感_Python O