跳至主要内容

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

评论

此博客中的热门博文

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

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

设置转化跟踪来实现目标

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

使用转化数据进行分析和优化

使用转化数据进行分析和优化 1. 与阿久一起分析数据 如何判断您的营销策略是否有效或是否产生了您期望的结果?如果没有正确的数据,您无法做出正确的决策来提高广告系列的效果并影响您的业务。 在本单元中,您将与阿久一起探索健康生活 HQ10 报告,学习如何查看和分析转化数据。 数据在哪里? 与许多新的企业主一样,阿久第一次尝试查看健康生活 HQ10 广告系列的转化数据时,发现没有记录任何转化。但她很快发现 Google Tag Assistant 可以帮忙,并且迅速解决了这个问题。我们来观看一段简短的教程,看看 Google Tag Assistant 是如何助她一臂之力的。别担心,这个问题通常能够轻松解决! Google Tag Assistant 的作用体现在两个方面:它会告诉您当前查看的页面上有哪些代码,以及这些代码是否在正常工作。 阿久首先查看了一个已设置转化跟踪代码的页面。她点击 Tag Assistant 按钮,查看它找到的所有代码的列表。 她注意到按钮的颜色有所不同。红色表示代码存在严重的实施问题。黄色表示存在轻微的实施问题。蓝色表示实施正确,但还有改进空间。绿色则表示代码能够正常工作。 她再次点击代码,以查看更多详细信息。如果列出了任何警告或错误,她可以点击每个项目,详细了解可以如何修复或改进代码。 这是什么数据? 在成功开始记录转化数据之后,阿久可以转到广告系列报告,并看到下面显示的数据。不过乍一看好像很难懂。她理解不了各列中的数据有何区别。您能否指出报告中这些突出显示的列分别有何含义? 浏览型转化次数 “浏览型转化”是指当用户查看广告(但不与之互动),然后在晚些时候完成转化时,系统记录的转化。 在业务的第二阶段,阿久希望监测最新的健身视频广告系列能否有效地吸引网站流量并让更多用户注册参加健身课。但是,阿久试图查看浏览型转化次数时,却感到很困惑。 2. 与小珍一起了解数据差异 衡量数据时最常见的错误之一是,由于存在明显的差异而错误解读数据,并根据错误的信息对广告系列进行了更改。 差异:Google Ads 转化次数与离线数据来源的注册数...