1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| import requests import re import xlwt from urllib.parse import urlencode
fl = xlwt.Workbook() sheet1 = fl.add_sheet('DoubanList',cell_overwrite_ok=True) rowtitle = ['Number','FileTitle','FileScore'] for i in range(0,len(rowtitle)): sheet1.write(0,i,rowtitle[i]) for i in range(200): sheet1.write(i+1,0,i+1)
def get_page(Startnumber): Key = { 'type':'movie', 'tag':'热门', 'sort': 'recommend', 'page_limit': 20, 'page_start': Startnumber } url = 'https://movie.douban.com/j/search_subjects?' + urlencode(Key) headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36'} try: response = requests.get(url,headers = headers,proxies = {"https":"http://121.5.219.58:58888"},verify = False) response.encoding='utf-8' if response.status_code == 200: return response.text except Exception as e: print('请求出错') print(e)
def get_html(Html,Position): re_title = r'\"title\":\"(.*?)\"' re_score = r'\"rate\":\"([0-9].[0-9])\"' title_all = re.findall(re_title,Html,re.M) score_all = re.findall(re_score,Html,re.M) print(title_all) print(score_all) for i in range(0,len(title_all)): sheet1.write(i+Position,1,title_all[i]) sheet1.write(i+Position,2,score_all[i]) fl.save('路径/DoubanList.xls')
def main(): for i in range(10): Html = get_page(i*20) get_html(Html,i*20+1)
if __name__ == '__main__': main()
|