【Python】抓取人人都是产品经理的文章
2017-10-09 12:03
741 查看
简介
使用python3.5支持自动切换User-Agent(基于fake_useragent)
支持增量爬取(基于pybloom)
支持中断续爬
代码
# -*- coding: utf-8 -*- #------------------------------------- # author: maqingxiong # date: 2017-10-09 # desc: 抓取人人都是产品经理最新文章 #------------------------------------- import requests import sys import io sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030') from pybloom import ScalableBloomFilter from fake_useragent import UserAgent class PmSpider(object): def __init__(self): self.session = requests.session() self.ua = UserAgent() self.sbf = ScalableBloomFilter() self.load_url_in_bloomfilter() def load_url_in_bloomfilter(self): with open('crawled_url.txt', 'r') as f: for line in f: self.sbf.add(line.replace('\n', '')) def construct_all_url(self): url_list = [] base_url = 'http://www.woshipm.com/__api/v1/stream-list?paged={}&action=laodpost' for i in range(1, 11): url_list.append(base_url.format(str(i))) return url_list def get_req_headers(self): headers = { 'User-Agent': self.ua.random, 'Host': 'www.woshipm.com', 'Referer': 'http://www.woshipm.com/' } return headers def get_html(self, url): headers = self.get_req_headers() try: response = self.session.get(url=url, headers=headers) if response.status_code == 200: return response.json() else: return None except Exception as e: return self.get_html(url=url) def parse_html(self, html): for item in html['payload']: print(item['id']) print(item['title']) print(item['permalink']) print(item['date']) print(item['image']) def run(self): f = open("crawled_url.txt", 'w') url_list = self.construct_all_url() for url in url_list: if url in self.sbf: continue else: f.write(url+'\n') html = self.get_html(url=url) if html: self.parse_html(html) f.close() if __name__ == "__main__": pm_spider = PmSpider() pm_spider.run()
相关文章推荐
- Python爬虫:爬取人人都是产品经理的数据
- 【讀書筆記】人人都是产品经理
- 思维碰撞:人人都是产品经理么
- 人人都是产品经理 学习总结
- 人人都是产品经理读后感(持续更新)
- 人人都是产品经理8周年|我们才8岁,成长正当时
- 人人都是产品经理
- 我爱流程图,严肃版【人人都是产品经理:9085】
- 叮咚~来自人人都是产品经理的新年礼到了,请查收!
- 人人都是产品经理
- 人人都是产品经理?关于PM你不知道的还有很多
- 互联网时代真的人人都是产品经理吗?
- 人人都是产品经理读后感(五)
- 那些被误解的用户体验 | 人人都是产品经理
- 人人都是产品经理-别让灵魂跟不上脚步
- 人人都是产品经理读后感(六)
- 人人都是产品经理之第二章摘要01
- 数据化运营的三个层次【人人都是产品经理:9090】
- 人人都是产品经理总结 第四章2
- 大话产品经理:真的 “人人都是产品经理” 吗?