自動化爬取新聞軟文自主發布平台

2021-08-09 10:24:35 字數 1885 閱讀 6671

python2.7

selenium

chrome瀏覽器

1. 資料**

通過控制page的數值,實現網頁的跳轉。

2. 要獲取那些資訊?

逐條獲取微博頻道資訊,逐條儲存在weibo_list.txt檔案中。

3. 怎麼獲取我們需要的資訊?

使用強大的selenium工具,它可以根據元素的xpath路徑獲取相應元素的值。

在獲取之前首先要分析資料的組成以及規律性。

(1) 資料共66頁每頁20條,共1306條資料。

(2)先對比每頁第一條資料的xpath和最後一條資料的xpath;

//第一條

/html/body/div[1]/table/tbody/tr[2]/td[2]//最後一條

/html/body/div[1]/table/tbody/tr[21]/td[2]/a[1]

很容易發現規律(就不細說了)。

4. 編寫**

#-*- coding:utf-8 -*-

import unittest

import time

import re

from selenium import webdriver

from selenium.webdriver.common.keys import keys

from selenium.webdriver.common.action_chains import actionchains

#和網頁編碼charset保持一致

import sys

reload(sys)

sys.setdefaultencoding("utf-8")

f = open("/home/xuna/桌面/res/weibo_list.txt",'w')

sum = 1

#外迴圈控制網頁跳轉

for page in range(1,67):

#url = ""+str(page)

driver = webdriver.chrome()

driver.set_window_size(200,200) #設定瀏覽器視窗的大小

driver.get(url)

#內迴圈抓取每頁的資料

for n in range(2,22):#2-21

#/html/body/div/table/tbody/tr[2]/td[2]/a/html/body/div/table/tbody/tr[21]/td[2]

#獲取元素的xpath

name_xpath = '/html/body/div/table/tbody/tr[' + str(n) + ']/td[2]'

name = driver.find_element_by_xpath(name_xpath).text

f.write(name + "\n")

print sum,name

ifsum == 1305:

break

sum = sum + 1

driver.close()

5.獲取的結果

爬取網易新聞

爬取網易新聞 在本小節的內容中呢,筆者將會給大家講述如何去過濾我們所不需要的內容。下面的例子,是本人在爬取網易新聞時,遇到的乙個小問題,在定位元素之後,進行列印的時候,出現了部分內容無法正常解析。筆者也是進行了很長時間的嘗試,請教了很多人,才得到的三種方法。我們一起來看。通過寫入檔案的方法過濾元素 ...

爬取新聞列表

獲取單條新聞的 標題 鏈結 時間 內容 點選次數,幷包裝成乙個函式。獲取乙個新聞列表頁的所有新聞的上述詳情,幷包裝成乙個函式。獲取所有新聞列表頁的 呼叫上述函式。完成所有校園新聞的爬取工作。完成自己所選其他主題相應資料的爬取工作。import requests import refrom bs4 i...

爬取新聞列表

獲取單條新聞的 標題 鏈結 時間 內容 點選次數,幷包裝成乙個函式。獲取乙個新聞列表頁的所有新聞的上述詳情,幷包裝成乙個函式。獲取所有新聞列表頁的 呼叫上述函式。完成所有新聞的爬取。import requests from bs4 import beautifulsoup res requests....