跳至主要内容

如何爬取网页?可运行的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()

评论

此博客中的热门博文

了解视频广告格式

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 优选等较长的广告格式相结合,能够增强品牌影响力。 高关注度 导视广告可在短短六秒内吸引受众群体的注意力。这种广告格式的完整播放率很高,并且...

设置转化跟踪来实现目标

1. 设定转化跟踪目标 无论企业规模大小,您都可以轻松提升营销工作的效果。但要了解广告效果,您需要对照营销目标衡量数据。只有这样,您才可以继续提高广告系列效率,确保业务的未来增长。 首先确定要达成的目标 首先,必须要明确您希望通过广告达成的特定营销目标。确定目标后,您可以根据这些目标制作广告系列。 设定目标可帮助您通过更精明的调整来提升效果,特别是当您安排了时间反思广告系列的效果并采取相应措施时更是如此。 我们来研究一下 为了帮助我们熟悉转化跟踪的世界,让我们来看几个拥有截然不同的广告系列目标的虚构公司示例。我们将观察他们如何设置转化跟踪来帮助达成他们的目标。 健康与幸福行业广告客户:健康生活 HQ10(短期) 企业主: 阿久 产品: 健身服装和配件 目标: 提高销售额 应用与游戏行业广告客户:冥魔游戏有限公司 企业主: 小安 游戏应用: 冥魔城堡、冥魔之峰 目标: 提高下载量/安装量 大众消费品 (CPG) 行业广告客户:驿站 营销经理: 小珍 产品: 美容化妆品 目标: 提高线上销售额和发掘潜在客户 健康与幸福行业广告客户:健康生活 HQ10(长期) 企业主: 阿久 产品: 健身服装和配件 目标: 增加互动、发掘潜在客户以及提高销售额 认识一下阿久 健康生活 HQ10 的企业主 产品:健身服装与配件 [应用] 归因合作伙伴:Google Play 企业规模:初创阶段 目标:提高销售额 阿久是颇具发展潜力的“健康生活 HQ10”健身服装店的老板。她一直在使用广告系列来提高健身装备的销售额。她已经建立了一个网站。现在,她想利用他们的移动应用促成更多的应用内购买,因为他们的时尚产品的潜在受众主要是千禧一代和年轻买家。她并不关心客户最终是在网站、移动网站还是实体店内转化。她只对提高销售额感兴趣。 认识一下小安 冥魔游戏有限公司的企业主 产品:应用和游戏 应用/网站:冥魔城堡、冥魔之峰 [应用] 归因合作伙伴:Firebase 目标:提高下载量/安装量 冥魔游戏有限公司...

5. 采用 Google 展示广告投放最合适的广告内容

采用 Google 展示广告投放最合适的广告内容 了解在制作 Google 展示广告系列时可以使用的各种广告格式,选对广告格式将有助于您向合适的用户投放合适的广告内容。 1. 展示广告格式 在广告宣传中,广告素材是品牌的门面,因此一定要确保广告素材能够很好地体现品牌形象。您选择的广告格式决定着以怎样的形式向受众群体宣传业务。 在本单元中,您将学习如何概括在 Google 展示广告系列中选对广告格式的重要性 为何要选对展示广告格式? 无论用户是在浏览网页、观看 YouTube 视频、查收 Gmail 邮件,还是在使用移动设备和应用,展示广告都可以精准把握投放时机,向他们宣传您的业务。 Google 展示广告有两种策略供您选择,一种能够为您带来更高的效率,一种能够让您对广告素材有更强的控制力。 效率 阿久最看重的莫过于效果。为了取得最好的广告效果,阿久应采用自适应型展示广告,因为这种广告能够根据可用的广告空间自动调整,并且在原生和非原生广告资源中均可投放。 控制力 阿久非常看重品牌塑造。由于她对于广告的投放形式和位置有确切的要求,因此自行制作广告并上传或许是最佳选择。选择这种方法可能会限制广告的覆盖面,因为就可覆盖的广告资源数量来讲,上传的广告不及自适应型展示广告。 2. 自适应型展示广告 自适应型展示广告是 Google 的招牌展示广告格式,也是制作展示广告系列时默认的广告类型。这种广告代表着基于素材资源的数字广告未来的发展方向。 在本单元中,您将学习如何解释什么是自适应型展示广告。 什么是自适应型展示广告? 采用自适应型展示广告格式时,您可以上传自己的素材资源,制作出的广告可以投放到所有尺寸的广告位中,包括原生广告资源和非原生广告资源中的广告位。您只需上传自己的素材资源(图片、视频、标题、徽标和广告内容描述)即可,Google 将自动制作广告。自适应型展示广告效果好、覆盖面大且可发挥规模效应。 主要优势 自适应型展示广告不只外观好,效果也好。平均而言,广告主在图片广告系列中添加自适应型展示广告后,在每次转化费用 (CPA) 基本不变的情况下,转化次数往往会提高 50%。 ...