首页 python正文

如何python抓取网站新闻目录下面的所有子分类及内容?

启明SEO python 2020-09-29 15:47:29 2940 0 python爬虫
import requests
from bs4 import BeautifulSoup
import time


chushiurl="http://www.**.cc/seojs/"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36",
           "Cookie": "PHPSESSID=gpkit3qd1vftnhhkorf0a31d64; Hm_lvt_e3e00d6e883c992081f3141e552754a0=1597818420; Hm_lpvt_e3e00d6e883c992081f3141e552754a0=1597830064"
           }
num = 0
def get_mulu():
    res = requests.get(chushiurl, headers=headers)
    soup = BeautifulSoup(res.text, 'lxml')
    muluurls = soup.find(class_="fesleftnav").find_all('a')
    for mululink in muluurls:
        link = mululink.get("href")
        fan_ye(link)
def fan_ye(link):
    res = requests.get(link, headers=headers)
    soup = BeautifulSoup(res.text, 'lxml')
    fanyes = soup.find(class_="pageRemark")
    fan=fanyes.find_all("b")
    yema=int(fan[0].text)
    print(yema)
    if yema>10:
        for num in range(yema):
            url=link+"/page/"+str(num+1)
            get_xiang(url)
    else:
        get_xiang(link)
def get_xiang(link):
    res=requests.get(link,headers=headers)
    soup=BeautifulSoup(res.text,'lxml')
    xiangurls=soup.find_all(class_="feslist_right1_l")
    for url in xiangurls:
        lua=url.find("a")
        lul=lua.get("href")

        get_neirong(lul)


def get_neirong(lul):
    res = requests.get(lul, headers=headers)
    soup = BeautifulSoup(res.text, 'lxml')
    neirong = soup.find(class_="wangEditor-container")
    biaoti = soup.find('h1')
    try:
        biaoti=biaoti.text
        biaoti=biaoti.strip("\n")
        biaoti=biaoti.strip()
        neirong=neirong.text
        xie_ru(biaoti,neirong)
    except:
        print(lul)


def xie_ru(biaoti,neirong):

    with open("bb/"+biaoti+".txt","w+",encoding="utf-8") as f:
        f.write(neirong)
        f.close()
    '''
    conn = pymysql.connect(host="127.0.0.1", port=3306, user="root", password="", database="saiweianquan2",
                           charset="utf8")
    cursor_test = conn.cursor()
    str1='"'+biaoti+'"'
    str2='"'+neirong+'"'
    global num
    sql3 = 'insert into user2 (ID,biaoti,CONTENT) values (%s,%s,%s);'
    sql3 = sql3 % (num,str1, str2)

    try:
        cursor_test.execute(sql3)
        conn.commit()

    except:
        print("插入失败")
    conn.close()

    num+=1'''

if __name__ == '__main__':

    get_mulu()

刚学习python爬虫知识的时候,就写了这么一个只要提供网站的新闻分类,就可以抓取其所有子分类及内容的程序,现在给大家分享一下,代码如上,爬取的效果如下图:

如何python抓取网站新闻目录下面的所有子分类及内容?

评论

Python好学公众号

好文推荐

实时访客入口页面出现bd_vid=标识是什么原因

实时访客入口页面出现bd_vid=标识是什么原因

最近查看百度实时访客,总是会看到入口页面会多......

有了微信视频号,但是没有发布权限,怎么开通

有了微信视频号,但是没有发布权限,怎么开通

视频号是微信在2020年1月19号开始内测的......

如何用python抓取爱企查企业信息

如何用python抓取爱企查企业信息

前段时间,经理让我去找一些企业的信息,我平常......

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

服务器配置低,宝塔面板安装IIS总是安装不上怎么办

对于一般企业网站或者博客来说,对服务器的配置......

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

如何修改浏览器指纹,Canvas指纹、Webgl指纹、Audio指纹修改方法?

修改浏览指纹的方法其实也是很简单,主要使用到......

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

win10下安装MYSQL后,提示Can't connect to MySQL server on localhost (10061)相关问题解决方法

我遇到的问题是电脑原先安装过mysql,卸......