這是我在CSDN的第一篇博客,假期剛自學Python,嘗試爬取了一下豆瓣top250.
希望可以有大佬指點
感謝
import requests
from bs4 import BeautifulSoup
def gethtml(url):
try:
kv = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36'}
r=requests.get(url,headers=kv,timeout=30)
r.raise_for_status()
r.encoding=r.apparent_encoding
return r.text
except:
print("fault")
def jiexi(list1,list2,list3,html):
soup=BeautifulSoup(html,"html.parser")
div_list=soup.find_all('div', class_='hd')
div_list1=soup.find_all('div',class_='bd')
div_list2=soup.find_all('div',class_='star')
for each in div_list:
movie=each.a.span.text
list1.append(movie)
for each in div_list1:
yy=each.p.text.strip()
if len(yy)>2:
list2.append(yy)
for each in div_list2:
fen=each.contents
list3.append((fen[3]).text)
def printlist(list1,list2,list3):
print("豆瓣排名電影")
print(len(list1))
for i in range(len(list1)):
print("排名"+str(i+1))
print("名字:"+list1[i])
print("詳情:"+list2[i])
print("評分:"+list3[i])
print("--------------------------------------------------------------------------")
def main():
url0="https://movie.douban.com/top250?start="
list1=[]
list2=[]
list3=[]
for i in range(4): #4是爬取的頁數
try:
url=url0+str(i*25)
html=gethtml(url)
jiexi(list1,list2,list3,html)
except:
continue
printlist(list1,list2,list3)
main()
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
