spider里主要有三个套路。
1.只爬取一个网页。
先上代码
import scrapy
from pyquery import PyQuery as pq
class SmzdmCrawler(scrapy.Spider):
name = 'smzdm'
allow_domains = ['smzdm.com']
start_urls = ['https://faxian.smzdm.com/']
def parse(self, response):
res = pq(response.body)
for item in res('.feed-block-ver').items():
title = item('.feed-ver-title').text()
print(title)
pycharm有个terminal,在最下面,在这里输入scrapy crawler 名字,这个名字就是name = 'smzdm',然后一个简单爬虫就运行起来了
terminal位置
爬虫启动
这里面的套路就是scrapy对单网页爬取造好了轮子,对于不需要特殊处理的请求,比如提供账号密码之类的,就能直接爬取。
对于分析部分,scarpy有自带的解析,但是我用惯了pyquery,自己喜欢就好。
因为内含了request方法,所以在前面要把url定义好,这里就是 start_urls 。
name = 'smzdm'是调用这个爬虫,在多个爬虫时有个分辨。
这几句就是最基本的套路,需要记住。
class Smzdm(scrapy.Spider):
name = 'smzdm'
start_urls = ['https://faxian.smzdm.com/']
def parse(self, response):
还有一句allow_domains用于过滤,过滤不是这个结尾的网址。
allow_domains作用
网友评论