python爬取好豆网菜谱

爬取过程分析:
1、分析网页,发现好豆网的菜谱的url均为:https://www.haodou.com/recipe/id/
2、用beautifulsoup解析网页获得菜名,图片及菜谱,去除不必要的网页代码信息
3、将菜的图片存至本地,以菜名命名,将菜谱以文本方式存至本地

具体代码如下:


import requests
import urllib
import re
import lxml
from bs4 import BeautifulSoup

url = 'https://www.haodou.com/recipe'

id = 30
err_num = 0
while(id<200):
    id +=1
    try:
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'}
        url = 'https://www.haodou.com/recipe/'
        resp = requests.get(url+str(id)+'/').text
        # resp.encoding = resp.apparent_encoding
        # print(resp)

        soup = BeautifulSoup(resp,'lxml')
        # print(soup)
        receipe_name = soup.find(id='showcover').get('alt')
        print(receipe_name)
        img = soup.find(id='showcover').get('src')
        print(img)
        with open('./'+receipe_name+'.jpg','wb') as file:
            req = urllib.request.Request(url=img,headers=headers)
            try:
                image = urllib.request.urlopen(req,timeout=10)
                pic = image.read()
            except Exception as e:
                print(e)
                print(receipe_name+'下载图片失败'+img)
            file.write(pic)
            print('图片下载成功')

            drop_html = re.compile(r'<[^>]+>',re.S)
            full_text = []

        receipe_text = soup.find_all('dd')
        # print(receipe_text)
        for text_str in receipe_text:
            text = drop_html.sub('',str(text_str.find_all('p')))

            text = text.replace('[','')
            text = text.replace("]","")
            if text != '':
                print(text)
                full_text.append(text)

        with open('./'+receipe_name+'.txt','w') as file:
            file.writelines(str(full_text))


    except Exception as e:
        print(e)
        err_num += 1
    else:
        continue



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是Python瓣图书的基本步骤: 1. 导入所需的库:requests、beautifulsoup4和pandas。 2. 确定要瓣图书的URL。 3. 发送HTTP请求并获响应。 4. 使用BeautifulSoup解析HTML内容。 5. 找到所需的数据并提它们。 6. 将数据存储到Pandas DataFrame中。 7. 将DataFrame保存为CSV文件或其他格式。 下面是一个简单的示例代码,演示如何使用Python瓣图书: ```python import requests from bs4 import BeautifulSoup import pandas as pd # 确定要的URL url = 'https://book.douban.com/top250' # 发送HTTP请求并获响应 response = requests.get(url) # 使用BeautifulSoup解析HTML内容 soup = BeautifulSoup(response.text, 'html.parser') # 找到所需的数据并提它们 book_list = [] for book in soup.find_all('tr', class_='item'): book_name = book.find('div', class_='pl2').a.text.strip() book_url = book.find('div', class_='pl2').a['href'] book_rating = book.find('span', class_='rating_nums').text.strip() book_list.append([book_name, book_url, book_rating]) # 将数据存储到Pandas DataFrame中 df = pd.DataFrame(book_list, columns=['书名', '链接', '评分']) # 将DataFrame保存为CSV文件或其他格式 df.to_csv('瓣图书Top250.csv', index=False) ``` 这个示例代码可以瓣图书Top250的书名、链接和评分,并将它们保存为CSV文件。你可以根据自己的需求修改代码以其他信息或存储为其他格式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值