import scrapy
import bs4
from ..items import DoubanItem
class DoubanSpider(scrapy.Spider):
name='douban'
allowed_domains=['book.douban.com']
start_urls=[]
for x in range(3):
url= 'https://book.douban.com/top250?start=' +str(x*25)
start_urls.append(url)
def parse(self, response):
bs=bs4.BeautifulSoup(response.text,'html.parser')
datas=bs.find_all('tr',class_='item')
for data in datas:
item=DoubanItem()
item['title']=data.find_all('a')[1]['title']
item['publish']=data.find('p',class_='pl').text
item['score']=data.find('span',class_='rating_nums').text
print(item['title'])
yield item
main:
from scrapy import cmdline
import sys,os
dirpath=os.path.dirname(os.path.abspath(__file__))
print(dirpath)
sys.path.append(dirpath)
os.chdir(dirpath)
cmdline.execute(['scrapy','crawl','douban'])
为什么会出现这样的报错啊,请教大家
在运行这个程序时,有去访问网页下载,然而由于网不好或其它原因,超时了timeout,所以报错。等网好时再试下吧。
或者换个能很快响应的网站试下。