سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ محمدرضا مجیدی
مشکل خوردن موقع ذخیره اطلاعات
محمدعلی رضا حل شده توسط محمدعلی رضا

سلام و عرض ادب 

من همه قسمت‌ها رو رفتم و ۱۰ بار ویدیو استاد رو چک کردم ولی موقعی میخوام اطلاعات را ذخیره کنم یعنی موقعی که git article رو تایپ میکنم در داخل post.db این پیغام اخطار رو میده ؟؟؟

میگین مشکلش چیه ؟؟

وقتی که چند خطی که میخوام ذخیره کنه رو علامت #  جلوش میگذارم درست کار میکنه ولی وقتی بر میدارمش پیغام اخطار میده ممنون میشم راهنماییم کنید مرسی . . . من برای راحتی کار پروژه را داخل گیت لب گذاشتم نگاهی روش بکنید مرسی

https://gitlab.com/majidi2007/crawl_sport.git

سلااااااااااااااااام محمدرضا جان

روزت بخير

تو فايل crawl.py خط 5 تا 15 نوشتی:

def crawl_page(url):
    response = requests.get(url)
    print(url)
    if response.status_code == 200:
        soup = BeautifulSoup(response.text, 'html.parser')
        header_div = soup.find('div', attrs={'class': 'news-detail-header'})
        title = header_div.find('h1')
        body = soup.select_one('.detYazi')
        return {'Body': body.text, 'Title': title.text}
    return {'Body': '', 'Title': ''}

و تو فایل main.py خط 14 تا 27 نوشتی:

def crawl_and_scrape_articles():
    articles = Article.select().where(Article.is_completed == False)
    for article in articles:
        try:
            data = crawl_page(article.url)
        except:
            article.is_completed = False
            article.save()
        else:
            article.title = data['title']
            article.body = data['body']
            article.is_completed = True
            article.save()

خط 19 فایل main.py داری از تابع crawl_page استفاده میکنی و نتیجه اش رو داری میریزی داخل متغیر data و تو خط 24 و 25 فایل main.py میخوای از دیکشنری data استفاده کنی.

تابع crawl_page دیکشنری ای برمیگردونه با دو کلید Body, Title ولی تو تابع crawl_and_scrape_articles وقتی میخوای از نتیجه تابع crawl_page استفاده کنی داری از کلیدهای body, title استفاده میکنی. خطایی هم که بهت داده گفته که کلیدی به نام title داخل دیکشنری data نداریم.

با همین توضیحات میفهمی مساله کجاست و چه تغییراتی لازمه و از پسش برمیایی.

ولی بهرحال باز اگر راهنمایی خواستی یا سوالی داشتی کامنت بذار.

 

خيلي خوب كاري کردی پروژه رو تو گيت گذاشتي و لينكش رو تو تاپيك گذاشتي.

لطفا هر وقت سوالی مطرح میکنی یا پیامی میدی دقت کن غلط املایی یا نوشتاری نداشته باشه. منظورم اینه که تو سوال نوشتی git article ولی منظورت get_article بوده. اینجا میشد منظورت رو فهمید ولی بعضی جاها وقتی غلط املایی یا نوشتاری تو سوال داشته باشی جواب دادن سخت میشه.

بهترین پاسخ
محمدعلی رضا ۱۸ مهر ۱۴۰۰، ۰۵:۵۱