按条件爬取百度百科词条及其相关词条的ID

该博客介绍了如何使用Python爬虫按条件从百度百科抓取词条信息,包括更换请求头避免屏蔽,通过CSS选择器排除特定内容,设定搜索深度限制相关度,利用缓存避免重复搜索和记录,以及设置必须包含的关键字过滤。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值