小白一个,爬取豆瓣电影250作为练习,想把爬取的内容用csv存储,想存但是不知道怎么自己原来代码拼接在一起。
ps:非伸手党,查阅了官方文档,也做了csv读写的练习,就是拼不到一起,不知道该怎么改。求大神给条思路。
python3.5
import requests
from bs4 import BeautifulSoup
import lxml
import time
import csv
headers={
'user-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36'
}
url= 'http://movie.douban.com/top250'
urls=['https://movie.douban.com/top250?start={}&filter='.format(str(i)) for i in range(0,250,25)]
def get_item(url,data=None):
web_data=requests.get(url)
time.sleep(3)
soup=BeautifulSoup(web_data.text,'lxml')
#抓取电影名字
movie_names=soup.find_all('div',{'class':'hd'})
#抓取电影评分
movie_scroes=soup.find_all('span',{'class':'rating_num'})
#抓取网页图片
movie_images=soup.select('#content > div > div.article > ol > li > div > div.pic > a > img')
#抓取电影链接
movie_href=soup.select('#content > div > div.article > ol > li > div > div.info > div.hd > a')
for name,scroes,images,hrefs in zip(movie_names,movie_scroes,movie_images,movie_href):
data={
'name':"".join(i.strip() for i in name.get_text().split()),
'scroes':scroes.get_text(),
'images':images.get('src'),
'hrefs':hrefs.get('href')
}
print(data)
for sinle_url in urls:
get_item(sinle_url)