1.使用多个头信息轮替访问百度百科,防止被屏蔽
2.使用css选择器过滤掉含有指定内容的词条
3.指定递归搜索深度,以控制词条相关度
4.缓存搜索过的词条,不再进行重复搜索
5.缓存符合要求的已经记录的词条ID,不再重复记录
6.指定网页中必须包含哪些关键字中的一个
#!/usr/bin/env python3
import urllib.request
from bs4 import BeautifulSoup
from time import sleep
import re
from json import loads
from random import randint
from urllib import parse
from os.path import exists, isfile
import socket
from fake_useragent import UserAgent
def getlist(word='食品安全', nowDeep=0):
'''主程序,word为搜索关键字,nowDeep为搜索深度'''
global wordsUsed
global existsWords
global deep
if word in wordsUsed:
print(word + "\t" + '已经搜索过')
return ''
if nowDeep > deep: # 当前搜索深度大于指定最大搜索深度
return ''
wordsUsed.append(word)
wordUsed(word)
select = '#body_wrapper > div.searchResult > dl dd > a'
url = 'http://baike.baidu.com/search?word=' + \
parse.quote(word) + '&pn=0&rn=0&enc=utf8&sefr=sebtn'
z_data = getHtmlText(url)
soup = BeautifulSoup(z_data, 'l