客户要求用Haskell抓取京东洗衣机商品价格,红包到手
  wXxYM00stqo5 2023年12月13日 23 0

这是个比较不错的客户,平时经常扔点单子过来,今天过来找我说家里想换台洗衣机,让我帮看看整个价格表给他,让他去换台洗衣机,价格在2000-5000元不等,牌子在小天鹅,美的,海尔这几个牌子之间选。本来不打算收费的,但是最后还是发了个红包。

客户要求用Haskell抓取京东洗衣机商品价格,红包到手_爬虫

首先要确定需求和目标,这2个都有,那么就把最近半个月内的数据都整理出来,直接上代码;

{-# LANGUAGE OverloadedStrings #-}

import Network.HTTP.Client
import Network.HTTP.Client.TLS
import Network.HTTP.Types.Status (statusCode)
import qualified Data.ByteString.Lazy.Char8 as L8

main :: IO ()
main = do
    manager <- newManager tlsManagerSettings
    request <- parseRequest "https://search.jd.com/search?keyword=%E6%B4%97%E8%A1%A3%E6%9C%BA%E5%85%A8%E8%87%AA%E5%8A%A8&suggest=2.def.0.SAK7%7CMIXTAG_SAK7R%2CSAK7_M_AM_L5397%2CSAK7_M_GUD_R%2CSAK7_S_AM_R%2CSAK7_D_HSP_R%2CSAK7_SC_PD_R%2CSAK7_SM_PB_R%2CSAK7_SM_PRK_R%2CSAK7_SM_PRC_R%2CSAK7_SM_PRR_R%2CSAK7_SS_PM_LC%7C&wq=%E6%B4%97%E8%A1%A3%E6%9C%BA%E5%85%A8%E8%87%AA%E5%8A%A8&pvid=1464716f49bb473f8e44a27e906788f6&ev=exbrand_%E7%BE%8E%E7%9A%84%EF%BC%88Midea%EF%BC%89%7C%7C%E6%B5%B7%E5%B0%94%EF%BC%88Haier%EF%BC%89%7C%7C%E5%B0%8F%E5%A4%A9%E9%B9%85%EF%BC%88LittleSwan%EF%BC%89%5E#J_searchWrap"
    
    -- 设置模拟浏览器头
    let headers = [("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3")]
    let requestWithHeaders = request { requestHeaders = headers }

    -- 设置代理
    -- 免费领取爬虫ip:	http://www.jshk.com.cn/mb/reg.asp?kefu=xjy&51cto
    let requestWithProxy = requestWithHeaders { proxy = Just $ Proxy "http" "your-proxy-host" your-proxy-port }
    
    response <- httpLbs requestWithProxy manager
    if statusCode (responseStatus response) == 200
        then L8.putStrLn $ responseBody response
        else putStrLn "Error: Unable to fetch data."

请将 your-proxy-hostyour-proxy-port 替换为实际的代理主机和端口。在这个示例中,我们添加了一个名为 headers 的列表,其中包含了模拟浏览器的用户代理头。然后,我们将这个列表赋值给请求的 requestHeaders 字段,以便在发送请求时包含这些头部信息。

剩下就是数据整理了,为了偷懒,把数据中重要的品牌,价格,时间整理放到一个html页面中,每半小时更新一次,这页面就更简单了,直接gpt使用vue.js写就行了。

欢迎交流沟通,欢迎私信或留言,不要来抬杠。初入江湖,多多包涵。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月13日 0

暂无评论

推荐阅读
  SuVXIKXQi51s   2023年12月23日   92   0   0 pythonHTTPHTTPPython
wXxYM00stqo5