老师为什么我的当当网导入是有错误的呢?
来源:2-12 实现购书比价工具

qq_慕先生353548
2019-08-05
错误如下:
Traceback (most recent call last):
File
"C:/Users/HELLO/.PyCharm2018.2/config/scratches/spider_book.py", line 1, in
from .spider_dangdang import spider as dang
ModuleNotFoundError: No module named ‘main.spider_dangdang’; ‘main’ is not a package
京东和一号店的导入都没问题,淘宝因为不知道如何从网页源代码中提取出想要的数据所以还没做。
book代码:
from .spider_dangdang import spider as dangdang
from .spider_jd import spider as jd
from .spider_yhd import spider as yhd
from .spider_taobao import spider as taobao
def main(sn):
book_list = []
#当当网数据
print('以下是当当')
dangdang(sn,book_list)
#京东网数据
print('以下是京东')
jd(sn,book_list)
#一号店数据
print('以下是一号店')
yhd(sn,book_list)
#淘宝网数据
for book in book_list:
print(book)
print('=')*50
#排序
book_list = sorted(book_list,key=lambda item : item.price)
for book in book_list:
print(book)
if __name__ == '__main__':
sn = input('请输入图书的ISBN编码:')
main(sn)
以下是当当的代码
import requests
from lxml import html
def spider(sn,book_list=[]):
url = 'http://search.dangdang.com/?key={sn}&act=input'.format(sn=sn)
#获取html内容
html_data = requests.get(url).text
#获取xpath对象
selector = html.fromstring(html_data)
ul_list = selector.xpath('//div[@id="search_nature_rg"]/ul/li')
#print(len(ul_list))
#读取内容
for li in ul_list:
#标题
title = li.xpath('a/@title')
print(title[0])
#链接
link=li.xpath('a/@href')
print(link[0])
#价格
price = li.xpath('p[@class="price"]/span[@class="search_now_price"]/text()')
print(price[0].replace('¥',''))
#店铺
store = li.xpath('p[@class="search_shangjia"]/a/text()')
store = '当当自营' if len(store)== 0 else store[0]
print(store)
print('-'*50)
book_list.append({
'title': title[0],
'price': price[0].replace('¥', ''),
'link': link[0],
'store': store[0]
})
if __name__ == '__main__':
sn = 9787115428028
spider(sn)
写回答
2回答
-
NavCat
2019-08-13
from .spider_dangdang import spider as dangdang from .spider_jd import spider as jd from .spider_yhd import spider as yhd from .spider_taobao import spider as taobao
把模块前面的 . 去掉,即:
from spider_dangdang import spider as dangdang from spider_jd import spider as jd from spider_yhd import spider as yhd from spider_taobao import spider as taobao
试试
052019-08-19 -
NavCat
2019-08-08
你贴的代码都是一个文件的代码吗?
怎么会有两个
if __name__ == '__main__':012019-08-08
相似问题