任务一 爬取豆瓣并存储
1-3在命令行中实行,任务爬取豆瓣网的电影名和评分 豆瓣电影 Top 250
1、检查scrapy是否安装那个成功,命令
在cmd
输入scrapy 检查是否成功
2、cd 命令
路径切换到 cd /d E:\demo\shixun_workspase\demo2\zl\10.26
3、创建项目命令
scrapy startproject doubanPro
后面步骤进入到pycharm环境执行打开创建的工程
4、就在pycharm Terminal 下创建爬取器
cls 清屏,ctrl +L ,clear
1、进入douabnPro项目内
cd /d E:\demo\shixun_workspase\demo2\zl\10.26
cd doubanPro
?
2、创建第一个爬取器
scrapy genspider movie www.xxx.com#www.xxx.com占位,域名可以更改
?
5、理解start_url在,掌握执行爬取的命令
start_urls = ['http://www.baidu.com/','http://www.sogou.com/']
# 表示待爬取的初始的urls集合,可以是一个,也可以是多个
6、君子协议
在setting.py中
ROBOTSTXT_OBEY = False ?#君子协议为False
LOG_LEVEL='ERROR' ?#显示错误日志,没有就不显示
#伪装浏览器
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36
7、编写爬取器
理解参数response,理解xpath
response.xpath('//*[@id="content"]/div/div[1]/ol/li')
? ?#进入到谷歌浏览器开发者环境下,copy xpath 表达式
?
8、存储
终端指令持久化爬取数据
(1)基于终端指令
要求且必须是:只能将parse方法的返回值寻西湖到本地的文本文件中(不能往数据库里存)
使用字典存每一遍历的道德值,所有的值都放到列表中
一定用return返回
存储指令:scrapy crawl hzy -o ./news.csv
?
9、代码
在movie中
class HzySpider(scrapy.Spider):
name = 'movie'
# allowed_domains = ['www.xxx.com']
start_urls = ['https://movie.douban.com/top250']
def parse(self, response):
all_data=[]#存储所有解析到的字典数据
li_list=response.xpath('//*[@id="content"]/div/div[1]/ol/li')
#进入到谷歌浏览器开发者环境下,copy xpath 表达式
for li in li_list:#循环所有的li标签,分别取出电影的名字和得分
title=li.xpath('./div/div[2]/div[1]/a/span[1]/text()').get()#在li下面取div
score=li.xpath('./div/div[2]/div[2]/div/span[2]/text()').get()
#存到字典里
dic={
'title':title,
'score':score,
}
#创建一个列表,列表中的每个元素都是字典
all_data.append(dic)
return all_data
?10、在pycharm中的terminal下输入
scrapy crawl hzy -o ./news.csv
|