问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python,求一个简单的selenium+re的网页源码爬取

发布网友 发布时间:2022-04-29 00:51

我来回答

1个回答

热心网友 时间:2022-05-02 18:53

网页爬取不一定要用Selenium,Selenium是为了注入浏览器获取点击行为的调试工具,如果网页无需人工交互就可以抓取,不建议你使用selenium。要使用它,你需要安装一个工具软件,使用Chrome浏览器需要下载chromedriver.exe到system32下,如使用firefox则要下载geckodriver.exe到system32下。下面以chromedriver驱动chrome为例:

# -*- coding:UTF-8 -*-
from selenium import webdriver
from bs4 import BeautifulSoup
import re
import time

if __name__ == '__main__':

options = webdriver.ChromeOptions()
options.add_argument('user-agent="Mozilla/5.0 (Linux; Android 4.0.4; Galaxy Nexus Build/IMM76B) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.133 Mobile Safari/535.19"')
driver = webdriver.Chrome()
driver.get('url')#你要抓取百度文库的URL,随便找个几十页的替换掉

html = driver.page_source
bf1 = BeautifulSoup(html, 'lxml')
result = bf1.find_all(class_='rtcspage')
bf2 = BeautifulSoup(str(result[0]), 'lxml')
title = bf2.div.div.h1.string
pagenum = bf2.find_all(class_='size')
pagenum = BeautifulSoup(str(pagenum), 'lxml').span.string
pagepattern = re.compile('页数:(\d+)页')
num = int(pagepattern.findall(pagenum)[0])
print('文章标题:%s' % title)
print('文章页数:%d' % num)


while True:
num = num / 5.0
html = driver.page_source
bf1 = BeautifulSoup(html, 'lxml')
result = bf1.find_all(class_='rtcspage')
for each_result in result:
bf2 = BeautifulSoup(str(each_result), 'lxml')
texts = bf2.find_all('p')
for each_text in texts:
main_body = BeautifulSoup(str(each_text), 'lxml')
for each in main_body.find_all(True):
if each.name == 'span':
print(each.string.replace('\xa0',''),end='')
elif each.name == 'br':
print('')
print('\n')
if num > 1:
page = driver.find_elements_by_xpath("//div[@class='page']")
driver.execute_script('arguments[0].scrollIntoView();', page[-1]) #拖动到可见的元素去
nextpage = driver.find_element_by_xpath("//a[@data-fun='next']")
nextpage.click()
time.sleep(3)
else:
break

执行代码,chromedriver自动为你打开chrome浏览器,此时你翻页到最后,点击阅读更多,然后等一段时间后关闭浏览器,代码继续执行。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
小篇幅造句 易车如何发布二手车 转让卖车信息流程 《易车》群聊消息关闭方法 易车消息夜间勿扰方法步骤 易车如何开启消息夜间勿扰 易车 开启@消息推送 ...当入射角是 时,反射角是 。我们能从各个方向看到本身不发光的物体... 发泄的近义词和反义词是什么_发泄是什么意思? 我的世界手游 我的世界手机版怎么做末地传送门? 我的世界手游 末地传送门怎么做? 安全评价师的报考科目有什么 Python如何简单爬取腾讯新闻网前五页文字内容? 如何用xpath直接爬取网页 我这两天感觉有点缺氧 今天晚上好像更严重了点 必须用嘴呼吸 鼻子根本不够用 怎么办 我有鼻炎,晚上睡觉鼻子不通,只好用嘴呼吸,很难受,请问该怎么办? 鼻子呼吸困难 呼吸不畅胸口疼感觉缺氧...鼻子不通 我有慢性鼻炎,老呼吸不畅,到医院看也没多大效果,怎么办? 大脑缺氧 呼吸不畅 头晕 喉咙里感觉有痰 鼻子感觉堵塞 经常会这样 缺氧怎么办?(呼吸不畅),,血流不通又怎么办? 呼吸不畅,气短,感觉缺氧,靠嘴呼吸,鼻子吸不上气。 鼻炎:鼻孔里面干燥,右边鼻孔经常堵,呼吸困难,缺氧,胸闷,偶尔会牵连到心脏的痛,太热太冷都会堵,还 鼻子不通,呼吸困难,头部缺氧难受,容易感冒?怎样快速治疗? 现在网吧能用微信登录玩游戏吗? 孩子鼻子呼吸不畅,尤其睡觉的时候,这样长期下来会导致大脑缺氧吗? 好长时间了,鼻子老是感觉不通畅。 鼻子呼吸不畅感觉缺氧呼吸有点困难似的是怎么回事大夫 电脑上微信安全么,会不会出现病毒什么的 为什么有时候感觉鼻子不通气,有呼吸困难缺氧的感觉? 用网吧的网使用微信支付会不会有风险?会不会银行卡里面的钱被盗?归属 用网吧电脑登微信要注意什么 网络爬虫如何爬取分页的页面 网页爬虫怎么提取网页信息 央行回应降准:构建房地产金融调控机制 央行应采用什么货币政策解决经济增长乏力的问题 稳健,积极,从紧的货币政策三者有什么关系? 民间股王:央行加息紧缩提前带来股市什么影响? 央行将继续实施稳健货币政策 如何理解疫情常态化下中国对世界经济社会发展的贡献 问:你认为当前的宏观经济形势是否存在问题? 政府应该如何解决? 2021年第一季度主要使用了哪种货币*工具,如何使用的可以具体一点回答吗_百度问一问 我想约滴滴顺风车,在司机没接单的情况下怎么查询司机的电话号码? 苹果手机曾经退出并删除的群怎么查找并再加进去 腾讯文档的思维导图怎么变文档 怎么瘦胸有效,瘦胸的快速方法 怎样才能瘦胸,快速瘦胸的小技巧 怎么样快速瘦胸?? 信用卡后面数字什么意思 信用卡背面后三位数字有什么用啊? 格力空气能热水器显示F6是什么原因 ...背面有7个数字,前面四个数,后面三个数,是什么意思呀?什么是CVC 呀...