最近在学习scrapy,因为官方文档看着比较累,所以看着崔庆才老师写的博客来做:https://cuiqingcai.com/3472.html
# -*- coding: utf-8 -*-
import re
import scrapy # 导入scrapy包
from bs4 import BeautifulSoup
from scrapy.http import Request ##一个单独的request的模块,需要跟进URL的时候,需要用它
from dingdian.items import DingdianItem ##这是我定义的需要保存的字段,(导入dingdian项目中,items文件中的DingdianItem类)
class Myspider(scrapy.Spider):
name = 'dingdian'
allowed_domains = ['23wx.com']
bash_url = 'http://www.23wx.com/class/'
bashurl = '.html'
def start_requests(self):
for i in range(1, 11):
url = self.bash_url + str(i) + '_1' + self.bashurl
yield Request(url, self.parse)
yield Request('http://www.23wx.com/quanben/1', self.parse)
def parse(self, response):
print(response.text)
然后在编译时总会出现No module named items这个问题,找了很久都不知道哪里出错。
于是一开始就按照崔老师的做法
还是一样出错原因,于是就搜索了许多可能错误的原因,一步步纠正,最后才明白问题所在。在这里提供一些可能出错的原因:
1.爬虫名字和项目名字一样,导致导入模块时出错:改爬虫或者项目名称
2.模块不存在:检查你的项目中的items,看看有没有出错
3.模块没有保存:在编辑好items模块时,记得运行编译
4.模块名字和引入的不一样:自行检查
扫描二维码关注公众号,回复:
144640 查看本文章
5.手动添加自己创建的scrapy文件夹的路径:例如sys.path.append(r"C:\Users\ME\Desktop\Python project\爬虫\scrapy\novel")。注意路径前“”的r
import sys sys.path.append(文件路径)6.(先挖坑,后续再添加)