- 首先创建普通py文件
内容如下:
import scrapy
class Demo(scrapy.Spider):
name="demo"
def start_requests(self):
urls = ['https://www.qidian.com', "https://www.baidu.com"]
for url in urls:
req=scrapy.Request(url,callback=None)
yield req
def parse(self, response):
print(response.text)
这个demo继承了scrapy.Spider,爬虫的名字为"demo"这个最好和你的py文件名相同。
接下来重写start_requests方法,urls是一个要爬取网站的url的列表
scrapy.Request(url,callback=None)
这行代码用来发送请求,类似requests,urllib.request.urlopen
设置callback=None则可以将响应内容返回给parse回调函数,yield req相当于return req,即返回req内容,这个不同于将req放入list中然后返回一个list,这种方法可以获取到一个url则处理一个url并调用回调函数返回。这样写可以节约内存消耗,并且速度快,是一种无堵塞的方法。
parse是回调函数,你可以在这里面操作response 的信息
- 启动这个spider文件
scrapy runspider spider文件名(带扩展名)
,这种方式会显示日志
不显示日志可以使用:scrapy runspider demo1.py --nolog