前言:全文已在个人网站发布:微信文章关键词爬虫教程
这是一个爬虫 Demo, 主要通过 Python 中的 urllib 库完成微信文章关键词爬虫,根据传入特定的关键词,爬取:搜狗|微信 的公众号文章,并且可以自定义爬取特定关键字的所在页面范围的文章。对链接的爬取主要通过 Regular Expression(RE) 完成,如果对正则表达式方面有疑问也没关系,我将最近写篇详细的正则的文章以供参考。
代码:
# -*- coding: utf-8 -*-
# 微信公众号文章爬虫
# Usage: 在get_all_article_url(keyword,start,end)提供需要查找的关键字、搜索的起始页和结束页,未使用proxy,如果爬取大量页面存在屏蔽风险
# 所有的/Users/rundouble/Desktop/为我自己的PC路径,运行需根据自己的路径进行修改
# TODO: proxy
import re
import urllib.request
import urllib.error
import time
headers = ('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.162 Safari/537.36')
opener = urllib.request.build_opener()
opener.addheaders = [headers]
urllib.request.install_opener(opener)
# 用来存储所有的查找文章的链接
list_url = []
# k用来作为存储文章html文件的文件名
k = 'Default_Name'
# 根据url,返回源代码
def get_source(url):
try:
data = urllib.request.urlopen(url).read().decode('utf-8')
return data
except urllib.error.URLError as e:
if hasattr(e,'code'):
print(e.code)
if hasattr(e,'reason'):
print(e.reason)
time.sleep(3)