xianyu.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/usr/bin/env python
  2. # -*- encoding: utf-8 -*-
  3. '''
  4. @Contact : liuyuqi.gov@msn.cn
  5. @Time : 2023/09/23 00:38:01
  6. @License : Copyright © 2017-2022 liuyuqi. All Rights Reserved.
  7. @Desc : 闲鱼
  8. '''
  9. import os,sys,re,csv
  10. import requests
  11. from bs4 import BeautifulSoup
  12. from lxml import etree
  13. class Xianyu(object):
  14. def __init__(self):
  15. self.sess = requests.Session()
  16. def crawl(self, keyword):
  17. payload = {
  18. "st_edtime ": 1, # 最新发布
  19. "_input_charset": "utf8",
  20. "search_type": "item",
  21. "q": self.keyword,
  22. "page": self.page
  23. # "start": minPrice, # 价格范围
  24. # "end": maxPrice,
  25. }
  26. try:
  27. rep = self.sess.get(url="https://s.2.taobao.com/list/?", params=payload)
  28. rep.encoding = rep.apparent_encoding
  29. res = rep.text
  30. return res
  31. except Exception as e:
  32. print('error' * 22)
  33. return False
  34. self.save_to_csv()
  35. pass
  36. def save_to_csv(self, filename, data):
  37. if not os.path.exists('data'):
  38. os.mkdir('data')
  39. with open(filename, 'w') as f:
  40. csv_header = ['title', 'price', 'location', 'url']
  41. writer = csv.DictWriter(f, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
  42. writer.writerow(csv_header)
  43. writer.writerows(data)
  44. if __name__ == "__main__":
  45. if not os.path.exists('data'):
  46. os.mkdir('data')
  47. keywords = ['羽毛球拍', 'iphone']
  48. for keyword in keywords:
  49. xianyu = Xianyu()
  50. xianyu.crawl(keyword)