爬取网页的通用代码框架

短命女 2023-07-18 09:56 73阅读 0赞

爬取网页的通用代码框架

  1. import requests
  2. def getHTMLText(url):
  3. try:
  4. r=requests.get(url,timeout=30)
  5. r.raise_for_status() #若状态不是200,引发HTTPError异常
  6. r.encoding=r.apparent_encoding
  7. return r.text
  8. except:
  9. return "产生异常"
  10. if __name__=="__main__":
  11. url="http://www.baidu.com"
  12. print(getHTMLText(url))

一:京东商品页面的爬取

  1. import requests
  2. url="https://pro.jd.com/mall/active/28bw6fLCSoxGTKKBiQZLmUrVoSKV/index.html"
  3. try:
  4. r=requests.get(url)
  5. r.raise_for_status()
  6. r.encoding=r.apparent_encoding
  7. print(r.text[:1000])
  8. except :
  9. print("爬取失败")

r.status_code返回的是200,可以直接爬取

二:亚马逊商品页面的爬取

  1. import requests
  2. url="https://www.amazon.cn/dp/B07JMQTHWR/ref=s9_acsd_hps_bw_c2_x_0_i?pf_rd_m=A1U5RCOVU0NYF2&pf_rd_s=merchandised-search-2&pf_rd_r=PF3XEDEN44FP3A9EN2RM&pf_rd_t=101&pf_rd_p=3f149c06-7221-4924-a124-ebbe0310b38c&pf_rd_i=116169071"
  3. try:
  4. kv={'user-agent':'Mozilla/5.0'}
  5. r=requests.get(url,headers=kv)
  6. r.raise_for_status()
  7. r.encoding=r.apparent_encoding
  8. print(r.text[1000:2000])
  9. except :
  10. print("爬取失败")

r.status_code返回的是503,所以需要修改headers字段,以隐藏自己爬虫的身份

三:百度搜索关键词提交

  1. import requests
  2. keyword="Python"
  3. try:
  4. kv={'wd':keyword}
  5. r=requests.get("http://www.baidu.com/s",params=kv)
  6. print(r.request.url)
  7. r.raise_for_status()
  8. print(len(r.text))
  9. except :
  10. print("爬取失败")

疑似被重定向

20200326211000949.PNG

四:360搜索关键词提交

  1. import requests
  2. keyword="Python"
  3. try:
  4. kv={'q':keyword}
  5. r=requests.get("http://www.so.com/s",params=kv)
  6. print(r.request.url)
  7. r.raise_for_status()
  8. print(len(r.text))
  9. except :
  10. print("爬取失败")

成功

20200326211241566.PNG

五:网络图片的爬取和存储

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0xZXzYyNA_size_16_color_FFFFFF_t_70

爬取成功,图片保存到了D盘,名字为abc.jpg

  1. import requests
  2. import os
  3. url="https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1585238676005&di=806d8fd3824fb2380f9c1f0d2d4ab76a&imgtype=0&src=http%3A%2F%2Fimg.article.pchome.net%2F00%2F38%2F35%2F30%2Fpic_lib%2Fwm%2FChuntian11.jpg"
  4. path="D:/abc.jpg"
  5. try:
  6. if not os.path.exists(path): #判断图片是否存在
  7. r=requests.get(url)
  8. with open(path,'wb') as f:
  9. f.write(r.content)
  10. f.close()
  11. print("文件保存成功")
  12. else:
  13. print("文件已存在")
  14. except :
  15. print("爬取失败")

发表评论

表情:
评论列表 (有 0 条评论,73人围观)

还没有评论,来说两句吧...

相关阅读