python爬取数据并存入excel

爬虫存入excel

项目需求

公司的爬虫项目:爬取数据,以满足文本分析,词频统计的需要。由同事整理好所需链接存入excel,我直接打开连接,爬取网站数据。由于仅仅需要进行词频分析,不需要进一步的挖掘,又因为不同网站源码差距很大,故采取了简单的将整个页面获取并用soup.get_text()方法提取文本信息。全程自动化运行。

所需改进

因为不同网站源码差距很大,将整个页面源码爬取并存储的方法,包含太多的源代码,无法用于进一步的文本分析。下一步可以进利用机器学习技术对网页信息进行文本信息提取。
代码如下:

from bs4 import BeautifulSoup
from selenium import webdriver
import time
import re
from elasticsearch import Elasticsearch
from w3lib.html import remove_tags
import pandas as pd
from pandas import DataFrame

data_all=pd.read_excel("/result_retest.xlsx")

source_url=data_all['source_url']
text_data=data_all['text_data']
index=data_all['index']

print(u'这个程序要开始疯狂的运转啦')
options = webdriver.firefox.options.Options()
driver = webdriver.Firefox(executable_path='/geckodriver-v0.21.0-win64/geckodriver',
                           firefox_options=options)
driver.set_page_load_timeout(10)  #设置超时时间

for i in range(len(source_url)):
    try:
        if data_all['text_data'].isna()[i]:
            url_i=source_url[i]
            driver.get(url_i)
            time.sleep(1)
            soup = BeautifulSoup(driver.page_source, "lxml")
            
            #data="去标签"
            data=soup.get_text()
            data=re.sub("\xa0",'',data)
            data=re.sub("\t",'',data)
            data=re.sub("\n",'',data)
            data=re.sub("\u3000",'',data)
            data_all['text_data'][i]=data
            
            data_result=DataFrame(data_all)
            data_result.to_excel("result_retest.xlsx")  # 防止数据丢失,每爬取一个重写一次
            print(i)
        else:
            continue
    except:
        continue

你可能感兴趣的:(文本挖掘,PYTHON)