当前位置: 首页 > 办公技巧 > 正文

自动化办公技巧大全视频(自动化办公3——我用爬虫治好了朋友的焦虑)

  • 叁碗诸角 叁碗诸角
  • 办公技巧
  • 2023-07-03 00:12:39
  • 0

数据为王的时代,数据的重要性已经不言而喻了,数据收集也已经成为很多企业的利润来源和竞争壁垒,对于算法工程师来说,算法的尽头是数据标注,数据标注的尽头是数据收集,最近一个实例分割的项目更是让我加深了这点认识,网上一个标注好的数据集一张图片就要1美元。很多同事开玩笑说:还敲什么代码啊,直接去标注数据得了。

当然了,数据收集不仅限于数据分析师、算法工程师岗位,很多运营岗位的人员也需要收集数据。前段时间一个许久没联系的朋友找我吐槽说最近得了焦虑症,想换工作了。他是从事艺术领域的,需要找全国各地的街舞工作室洽谈合作,他的做法:就是每天到大众点评收集各地街舞工作室的名称、地址、电话,然后打电话或者实地到访谈合作,最头疼的莫过于每天在大众点评上去搜索、复制、粘贴。听后我笑了笑,人去干机器的事儿,哪能不难受吗?我用几行代码轻松治好了他的“病”。

首先到大众点评选择城市和关键词点击搜索后复制链接得到【我这里是杭州街舞的url】后面加上p是为了翻页用,当然这个过程是可以自动化的,但是大众点评的城市信息加密过了,我没有时间研究解码,网上现有的解码方式也都过时了。

BASE_URL = "https://www.dianping.com/search/keyword/8/0_街舞/p"

然后,就是爬取页面信息的代码了,这里的请求头中的cookie信息要换成自己的

headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36', 'Cookie':'_lxsdk_cuid=17f540a0d49c8-0a36f3f6ab440f-978183a-144000-17f540a0d49c8; _lxsdk=17f540a0d49c8-0a36f3f6ab440f-978183a-144000-17f540a0d49c8; _hc.v=f24f226e-2247-f10c-55fb-e09cba145754.1655347958; Hm_lvt_602b80cf8079ae6591966cc70a3940e7=1655347959; s_ViewType=10; WEBDFPID=0ux516uv9u5v5735y2z6v23zu68464648183z266yw0979584897u068-1655434746217-1655348344154IKQSGWOfd79fef3d01d5e9aadc18ccd4d0c95077713; dper=8baf569b6bb6de39144553d1ec95cd2df854f1d84afcd0d78fd465b78bdd494c0c36882ee18f61d90791b25325267ee4be3b8008c90a4a2f4eaf6bc2018285e1; fspop=test; ll=7fd06e815b796be3df069dec7836c3df; cy=3; cye=hangzhou; Hm_lpvt_602b80cf8079ae6591966cc70a3940e7=1655350213; _lxsdk_s=1816a6d508c-4fc-513-306||171'}pattern_page = 'title=.*? target.*? href="(.*?)" >n

(.*?)

' #'title=.*? target=.*? href=(.*?) >n

(.*?)

'pattern_page = re.compile(pattern_page)region_pattern = '(.*?)'region_pattern = re.compile(region_pattern)address_pattern = 'address_pattern = re.compile(address_pattern)tel_pattern = '(.*?)'tel_pattern = re.compile(tel_pattern)shop_info = []for page_num in range(1,25): shop_detail = {} page_url = BASE_URL str(page_num) print(page_url) page_res = requests.get(page_url,headers=headers) page_res_text = page_res.text shops_list = re.findall(pattern_page,page_res_text) print(shops_list) shop_info.append(shops_list) a = random.choice([1, 2, 3, 0]) sleep_time = round(random.uniform(5,11),a) time.sleep(sleep_time)

结果:

接着爬取详情页的信息

shop_detail_infos = []location_pattern = '地址:n (.*?)n

'location_pattern = re.compile(location_pattern)phone_pattern = 'n'phone_pattern = re.compile(phone_pattern)for shop_list in shop_info: for shop in shop_list: shop_dict = {} shop_dict["name"] = shop[1] shop_dict["url"] = shop[0] print(shop[0]) shop_detail_res = requests.get(shop[0],headers=headers) shop_detail_text = shop_detail_res.text regoin = re.findall(region_pattern,shop_detail_text) shop_dict["regoin"] = regoin address = re.findall(address_pattern,shop_detail_text) if len(address) == 0: address = re.findall(location_pattern,shop_detail_text) tel = re.findall(phone_pattern,shop_detail_text) else: tel = re.findall(tel_pattern,shop_detail_text) shop_dict["address"] = address shop_dict["tel"] = tel print(shop_dict) shop_detail_infos.append(shop_dict) a = random.choice([1, 2, 3, 0]) sleep_time = round(random.uniform(1,7),a) time.sleep(sleep_time)

最新文章