跳至主要内容

如何爬取网页?可运行的python脚本

#!/usr/bin/python
#-*-coding:utf-8-*-       #指定编码格式,python默认unicode编码

import json,os,sys
from bs4 import BeautifulSoup
from urllib.request import urlopen
import re
import time

from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities


def first():
binary = r'C:\Program Files\Mozilla Firefox32\firefox.exe'
options = Options()
options.set_headless(headless=True)
options.binary = binary
cap = DesiredCapabilities().FIREFOX
cap["marionette"] = True #optional

fp = webdriver.FirefoxProfile()
fp.set_preference("permissions.default.stylesheet" ,2)
fp.set_preference("permissions.default.image" ,2)

driver = webdriver.Firefox(firefox_options=options, capabilities=cap, executable_path="C:\\Program Files\\geckodriver-v0.26.0-win64\\geckodriver.exe")
return driver

def readlinkfile(sourcename='tangshisanbaishou.txt'):
with open(sourcename, 'rt', encoding='utf-8') as f:
data = f.read()

all_links = []
mylinks = re.split('\n',data)

for x in mylinks:
all_links.append(x)
f.close()
return all_links

def writeTxtFile(data,outfilename):
with open(outfilename+'.txt', 'wt',encoding='utf-8') as f:
for m in data:
f.write(m+'\n')
f.close()

def writeJsonFile(data,outfilename):
    with open(outfilename+'.json', 'wt',encoding='utf-8') as f:
        for m in data:
            json.dump(m,f,ensure_ascii=False,indent=4)
        f.close()

def writeJsonFileAddEndFile(data,outfilename):
    with open(outfilename+'.json', 'a',encoding='utf-8') as f:
        for m in data:
            json.dump(m,f,ensure_ascii=False,indent=4)
        f.close()



def action(driver,link):
url = "https://so.gushiwen.org" +link
driver.get(url)

booklinks = []
elements = driver.find_elements_by_css_selector(".bookcont a")

title = driver.find_element_by_css_selector("h1").text

# print(elements.text)
for e in elements:
# print(e.get_property('href'))
booklinks.append(e.get_property('href'))

writeTxtFile(booklinks,'./onebooklink/'+ title)


def createLinkList():
driver = first()
links = readlinkfile('gujilinks.txt')

for link in links:
action(driver,link)
# break

driver.quit()

# createLinkList()


def soup(gushiurl):
# assert gushiurl
if not gushiurl:
return
# gushiurl = str("https://***" + gushiurl)
print(gushiurl)

html = urlopen(gushiurl).read().decode('utf-8')
# print(html)

soup = BeautifulSoup(html, features='lxml')

contsons = soup.find_all('div', {"class": "contson"})
title = soup.find_all('h1')

h1= title[0].get_text().replace('\n译注\n\n','')
text = []

for item in contsons:
text.append(item.get_text())

temp= {
'title':h1,
'text':text
}

contents = []
soup = None
contents.append(temp)
return contents


path = "G:\\workspace\\python\\selenium\\guji\\restlinks" #文件夹目录
Files_Global = []

def file_name_walk(file_dir):
    for files in os.listdir(file_dir):
        Files_Global.append(files)  # 当前路径下所有非目录子文件


def getOne(name):
links = readlinkfile('./onebooklink/'+name+'.txt')
for link in links:
contents = soup(link)
writeJsonFileAddEndFile(contents,'./gujisourse/'+name)

def getOne2(name):
print(name)
links = readlinkfile('./restlinks/'+name)
index = 0
for link in links:
time.sleep(0.2)
print(index)
contents = soup(link)
name = name.replace('.txt','')
if contents:
writeJsonFileAddEndFile(contents,'./gujisourse/'+name)
index += 1

def run():

file_name_walk(path)

for name in Files_Global:
print(name)

try:
getOne2(name)
except Exception as e:
raise e


# break

# run()

评论

此博客中的热门博文

6.用好效果规划师,有效提高转化量

用好效果规划师,有效提高转化量 不妨了解如何使用 Google Ads 中最新推出的“效果规划师”这款规划工具,做好周密规划,以取得更理想的广告效果,尽可能提高您在 Google Ads 上所投资金的回报。 1.为什么应该通过效果规划师规划提升广告效果 规划是通过 Google Ads 取得成功的首要步骤 数字营销方兴未艾,可帮助像您这样的企业触达更多客户。通过 每月 提前规划您的 Google Ads 预算,您可以确保在用户需要产品或信息时,将您的广告适时呈现在他们面前,以最大程度提高转化次数和实现关键绩效指标 (KPI)。 通过提前规划 Google Ads 预算,您可以: 了解当前 Google Ads 广告系列的未来支出潜力,以帮助推动预算决策 充分利用季节性因素来抓住增长机会 对所有广告系列设置最佳出价和预算,以确保最大程度提高投资回报率 找到通过 Google Ads 推动销量增长的全新机会 Google Ads 效果规划师是什么? 效果规划师是一款新的预测工具,它使用机器学习技术来揭示 Google Ads 广告系列可能实现的效果。借助此工具,您可以了解当前广告系列未来每月、每季度和每年预算的预测结果,同时提高投资回报率。 效果规划师如何运作? 效果规划师将会确定所有广告系列的最佳出价和平均每日预算分配,以帮助您提高未来支出方案可实现的转化次数。效果规划师使用如下流程: 效果规划师如何预测广告系列的效果? 效果规划师结合使用帐号历史记录和机器学习技术来为预测提供支持。在 Google Ads 工具中,预测必须达到一定的准确度。因此,这些预测的置信区间可能大于其他可用预测工具的置信区间。 预测 Google Search 广告竞价每周囊括数十亿次搜索,可为我们的预测引擎提供支持。 模拟 我们的预测引擎使用查询级别变量模拟相关的广告竞价,这些变量包括季节性、点击率、竞争对手、着陆页和时段。 机器学习 我们使用机器学习技术来微调预测结果,实现更高的准确度。 验证 我们针对数千个广告系列样本执行前向和后向准确度测量(包括 1 ...

将业务目标转换成营销目标

1. 确定您的业务目标 您可以把我看作您的私人营销顾问。在接下来的几个课程中,我将帮助您确定主要的业务目标,然后把它们转化为富有成效的营销广告系列 - 让您的每一分营销资金都花到实处。 您的目标是什么? 人可能一生都在找寻自己的人生目标。确定公司的目标则远没有如此费时。目标说明可以帮助您把关注点集中在客户身上,并确定如何让您的产品或服务满足客户需求。您的组织里的所有成员都应该能够明确、自信地阐述公司的目标。 业务目标是关键 开始讨论营销概念前,我们先来明确下您的业务目标。明确的业务目标有助于您了解哪些策略可以有效促进业务发展,哪些策略需要改进。 目标就是明确的预期成果。有些人也会使用“关键绩效指标”一词,也就是 KPI。通常,我更喜欢随意一些,避免在课程中使用术语,但如果您是专业营销者,您可能更喜欢这个说法。如果是这样,请按照自己的习惯来! 要设定一个不错的目标,关键是确保目标的可衡量性,并且要明确时间范围。不要担心,我会逐步介绍这个过程。确定业务目标后,就可以学习如何将其转换为营销目标。然后,我们会将您的营销目标转换为广告系列的目标。届时,您就可以确信自己业务中最重要的因素将得到有效的衡量。 不同类型的目标 业务目标 :贵公司宽泛的顶级目标。这种目标通常侧重于收入、利润率或销量(例如,商品售出量)的提升。通常,大型公司会为其每个业务领域设立子目标。 营销目标 :指对业务目标的实现起到支持作用的目标。一些规模较小的公司可能不需要将目标具体到这个程度。 媒体目标 :指实现营销目标所需的各个渠道的目标(例如,您的 YouTube 广告系列的目标)。 广告系列指标 :指您用来衡量您的媒体目标是否成功的具体指标。 如何提升收入 以下图表展示了如何赚大钱。是不是很兴奋?其实,您大概也能猜到,这只是个吸引眼球的说法而已。如果您想提高利润,那只有两种方法:降低成本或者提高收入。如果您想提高收入,既可以提高价格也可以增加销量。什么是销量?根据业务类型的不同,销量可能指商品出售量、产能、潜在客户数量等。 请看下方的可视化图表,注意每项成效是如何受到其他决策影响的。 提高利润 提高利润,即收入金额和因采购、运营或生产而支出...

了解视频广告格式

1. YouTube 和 Google 的广告格式解决方案 YouTube 和 Google 提供的不同广告格式能够帮助您实现各种营销目标。 在本单元中,您将学习各种广告格式、视频广告解决方案和出价方法,以及它们对您的营销目标的支持情况,从而打造成功的广告系列。 2. 借助导视广告在六秒钟内扩大影响力 认知度 :导视广告(每千次展示费用) 导视广告是一种时长为六秒且 不可跳过的插播广告 ,可帮助 扩大覆盖面、提高展示频率和提升品牌认知度 。 这类广告是所有成功的 YouTube 广告系列的构成要素,既能对 TrueView 插播广告和 Google 优选起到补充作用,又能作为独立的视频广告解决方案发挥作用。此外,导视广告的设计初衷是为了适应移动优先的时代,比其他任何广告格式的覆盖面都更加广泛。 导视广告可通过 Google Ads(竞价或预先购买)、Display & Video 360 或 Google 优选按目标每千次展示费用 (CPM) 购买。 导视广告的每千次展示费用低于其他插播视频广告格式,主要在移动设备上投放。 导视广告可在 YouTube 和 Google 视频合作伙伴上投放 导视广告的关键优势 充分扩大覆盖面 在所有 YouTube 广告格式中,导视广告的覆盖面最广,这要归功于以下两种效果的综合作用: 1. 导视广告能够覆盖那些总是忙忙碌碌、没有时间观看较长的 TrueView 广告的用户。 2. 导视广告采用高效的每千次展示费用出价策略(比 TrueView 插播广告的每次观看费用低 25% 到 40%),所能覆盖的用户多于其他任何 YouTube 广告格式。 如果与 TrueView 插播广告或 Google 优选等较长的广告格式相结合,那么导视广告能够扩大覆盖面并提升品牌影响力。 品牌影响力 导视广告在营造品牌影响力方面可媲美 TrueView 插播广告,尤其是从广告回想度和认知度这类漏斗上端指标来看。 而且,请注意,将导视广告与 TrueView 插播广告或 Google 优选等较长的广告格式相结合,能够增强品牌影响力。 高关注度 导视广告可在短短六秒内吸引受众群体的注意力。这种广告格式的完整播放率很高,并且...