日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Python 网络爬虫(新闻采集脚本)

發布時間:2023/12/24 综合教程 19 生活家
生活随笔 收集整理的這篇文章主要介紹了 Python 网络爬虫(新闻采集脚本) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

=====================爬蟲原理=====================

通過Python訪問新聞首頁,獲取首頁所有新聞鏈接,并存放至URL集合中。

逐一取出集合中的URL,并訪問鏈接獲取源碼,解析出新的URL鏈接添加到集合中。

為防止重復訪問,設置一個歷史訪問,用于對新添加的URL進行過濾。

解析DOM樹,獲取文章相關信息,并將信息存儲到Article對象中。

將Article對象中的數據通過pymysql保存到數據庫中。

每完成一次數據的存儲,計數器增加并打印文章標題,否則打印錯誤信息。

如果集合中的URL全部讀取完或數據數量達到設定值,程序結束。

=====================存儲結構=====================

CREATE TABLE `news` (
  `id` int(6) unsigned NOT NULL AUTO_INCREMENT,
  `url` varchar(255) NOT NULL,
  `title` varchar(45) NOT NULL,
  `author` varchar(12) NOT NULL,
  `date` varchar(12) NOT NULL,
  `about` varchar(255) NOT NULL,
  `content` text NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `url_UNIQUE` (`url`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

=====================腳本代碼=====================

'''
百度百家新聞收集
'''

import re  # 網絡連接模塊
import bs4  # DOM解析模塊
import pymysql  # 數據庫連接模塊
import urllib.request  # 網絡訪問模塊

# 配置參數
maxcount = 1000  # 數據數量
home = 'http://baijia.baidu.com/'  # 起始位置
# 數據庫連接參數
db_config = {
    'host': 'localhost',
    'port': '3310',
    'username': 'woider',
    'password': '3243',
    'database': 'python',
    'charset': 'utf8'
}

url_set = set()  # url集合
url_old = set()  # 過期url

# 獲取首頁鏈接
html = urllib.request.urlopen(home).read().decode('utf8')
soup = bs4.BeautifulSoup(html, 'html.parser')
pattern = 'http://w+.baijia.baidu.com/article/w+'
links = soup.find_all('a', href=re.compile(pattern))
for link in links:
    url_set.add(link['href'])


# 文章類定義
class Article(object):
    def __init__(self):
        self.url = None
        self.title = None
        self.author = None
        self.date = None
        self.about = None
        self.content = None


# 連接數據庫
connect = pymysql.Connect(
    host=db_config['host'],
    port=int(db_config['port']),
    user=db_config['username'],
    passwd=db_config['password'],
    db=db_config['database'],
    charset=db_config['charset']
)
cursor = connect.cursor()

# 處理URL信息
count = 0
while len(url_set) != 0:
    try:
        # 獲取鏈接
        url = url_set.pop()
        url_old.add(url)

        # 獲取代碼
        html = urllib.request.urlopen(url).read().decode('utf8')
# DOM解析 soup = bs4.BeautifulSoup(html, 'html.parser') pattern = 'http://w+.baijia.baidu.com/article/w+' # 鏈接匹配規則 links = soup.find_all('a', href=re.compile(pattern)) # 獲取URL for link in links: if link['href'] not in url_old: url_set.add(link['href']) # 數據防重 sql = "SELECT id FROM news WHERE url = '%s' " data = (url,) cursor.execute(sql % data) if cursor.rowcount != 0: raise Exception('Data Repeat Exception: ' + url) # 獲取信息 article = Article() article.url = url # URL信息 page = soup.find('div', {'id': 'page'}) article.title = page.find('h1').get_text() # 標題信息 info = page.find('div', {'class': 'article-info'}) article.author = info.find('a', {'class': 'name'}).get_text() # 作者信息 article.date = info.find('span', {'class': 'time'}).get_text() # 日期信息 article.about = page.find('blockquote').get_text() pnode = page.find('div', {'class': 'article-detail'}).find_all('p') article.content = '' for node in pnode: # 獲取文章段落 article.content += node.get_text() + ' ' # 追加段落信息 # 存儲數據 sql = "INSERT INTO news( url, title, author, date, about, content ) " sql = sql + " VALUES ('%s', '%s', '%s', '%s', '%s', '%s') " data = (article.url, article.title, article.author, article.date, article.about, article.content) cursor.execute(sql % data) connect.commit() except Exception as e: print(e) continue else: print(article.title) count += 1 finally: # 判斷數據是否收集完成 if count == maxcount: break # 關閉數據庫連接 cursor.close() connect.close()

=====================運行結果=====================

設置參數 maxcount = 10 , home = 'http://baijia.baidu.com/'

查詢數據 SELECT title, author FROM python.news;

總結

以上是生活随笔為你收集整理的Python 网络爬虫(新闻采集脚本)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一女二男一黄一片 | 成人性生交大免费看 | 91国产在线免费观看 | 国精品无码人妻一区二区三区 | 中国黄色一级视频 | 午夜剧场福利 | 日本黄频 | 香蕉精品在线 | 欧美日韩国产在线观看 | 男男成人高潮片免费网站 | 中文字幕欧美专区 | 性免费网站 | 男同互操gay射视频在线看 | 国产精品又黄又爽又色无遮挡 | 久久久久久一级片 | 欧美激精品 | 男人天堂一区二区 | 日本69熟 | 国产毛片久久久 | 欧美黑人性生活 | 久久国产视频精品 | 办公室摸腿吻胸激情视频 | 天堂在线www | 在线免费看黄色片 | 亚洲av综合一区二区 | 中文字幕在线有码 | 久久在线免费视频 | 婷婷视频在线观看 | 九九热视频免费观看 | 黄色免费av网站 | 老妇女性较大毛片 | 国内精品视频 | 国产人妻777人伦精品hd | 91亚洲一区 | 国产麻豆乱码精品一区二区三区 | 久久精工是国产品牌吗 | 精品人妻无码一区二区三 | 神马午夜精品 | 婷婷国产一区 | 国产懂色av | 校园激情av | 日本一级片免费看 | 国产一二区在线观看 | 日本理论片在线 | 野外性满足hd | 国产免费视频一区二区三区 | 日韩国产欧美一区二区 | 欧美精品videosex极品 | 香蕉国产 | 色wwwwww| 日本人与黑人做爰视频 | 国产成人a亚洲精v品无码 | 日韩三级一区二区三区 | 成人极品视频 | 桃色av | 内射合集对白在线 | 日韩中文字幕视频在线 | 亚洲专区一区 | 91在线观看 | 狠狠地日 | 黄色小视频免费看 | 秘密基地电影免费版观看国语 | 免费看女生裸体视频 | 91黑人精品一区二区三区 | 日韩中文字幕久久 | 久久精品男人 | 全程粗话对白视频videos | 伊人365| 亚洲精品久久久狠狠狠爱 | 农村老妇性真猛 | 丁香激情五月少妇 | 日本免费福利视频 | 免费黄色在线视频 | 欧美一区二区视频在线 | 国产成人网 | 国产一区二区综合 | 好男人香蕉影院 | 成人18视频在线观看 | 久久少妇网 | 国产九九精品 | 双性尿奴穿贞c带憋尿 | 长篇高h乱肉辣文 | 久久夜夜操妹子 | 茄子视频懂你更多在线观看 | 日本在线精品 | 最新日韩视频 | 九久久 | 亚洲精品在 | 国产网站久久 | 午夜影院在线观看 | 九九热在线播放 | 欧美亚洲大片 | 免费看的黄色网 | 韩国av在线免费观看 | 国产一区二区三区观看 | 熟女丰满老熟女熟妇 | 日本三级吃奶头添泬无码苍井空 | 在线观看入口 | 久久久1 |