|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下:
import requests,csv,random
from bs4 import BeautifulSoup
csv_file=open('电影.csv', 'w', newline='',encoding='utf-8-sig')
writer = csv.writer(csv_file)
writer.writerow([ '电影名', '导演', '演员','类型','地区','语言','上映日期','片长'])
header = {
'Host':'movie.douban.com',
'Origin':'movie.douban.com',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36',
}
proxies={"http":'163.204.240.175'}
def format_url(num):
urls=[]
base_url='https://movie.douban.com/j/new_search_subjects?sort=T&range=0,10&tags=%E7%94%B5%E5%BD%B1&start={}'
for i in range(0,20*num,20):
url=base_url.format(i)
urls.append(url)
return urls
urls=format_url(500)
for url in urls:
html=requests.get(url,headers=header,proxies=proxies,timeout=5)
soup=BeautifulSoup(html.text,'lxml')
到此就不知道该怎么做了
这个print(soup)之后
出来的结果是有电影的名称,评分,导演,演员,还有电影的具体豆瓣页面的url,
但是我想要的是再进入这个url里边,
去获取到更多的信息,包括 电影的'类型','地区','语言','上映日期','片长'
然而到这里我就不知道该怎么做了
还有就是,写入csv文件老是失败,写不进去为什么??
希望能有人帮助一下!
用的etree,供你参考: import requests
from lxml import etree
import re
import csv
base_url = 'https://movie.douban.com/j/new_search_subjects?sort=T&range=0,10&tags=%E7%94%B5%E5%BD%B1&start='
headers = {'user-agent': 'firefox'}
tt = {}
for item in range(0, 500, 20):
url = base_url + '{}'.format(item)
r = requests.get(url, headers=headers)
data = r.json()
for x in range(0, 20):
key = data['data'][x]['title']
tt[key] = []
tt[key].append(key)
tt[key].append(data['data'][x]['directors'][0])
item = data['data'][x]['url']
r = requests.get(item, headers=headers)
html = etree.HTML(r.text)
info = html.xpath('//div[@id="info"][1]')[0]
actors = info.xpath('//span[3]/span[2]//a/text()')
tt[key].append(actors)
types = info.xpath('//span[@property="v:genre"]/text()')
tt[key].append(types)
zones = re.findall('地区:</span>(.*?)<', r.text)
tt[key].append(zones)
lang = re.findall('语言:</span>(.*?)<', r.text)
tt[key].append(lang)
date = info.xpath('//span[@property="v:initialReleaseDate"]//text()')
tt[key].append(date)
leng = info.xpath('//span[@property="v:runtime"]/text()')
tt[key].append(leng)
with open('moive.csv', 'w') as f:
writer = csv.writer(f)
writer.writerow(['电影名', '导演', '演员', '类型', '地区', '语言', '上映日期', '片长'])
for item in tt.values():
writer.writerow(item)
|
|