python导入requests库一直报错原因总结,
爬虫获取信息,很多时候是需要从网页源码中获取链接信息的,下面这篇文章主要给大家介绍了关于计算机编程语言无法用要求获取网页源码的解决方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
最近在抓取http://skell.sketchengine.eu网页时,发现用要求无法获得网页的全部内容,所以我就用硒先模拟浏览器打开网页,再获取网页的源代码,通过美丽的声音解析后拿到网页中的例句,为了能让循环持续进行,我们在循环体中加了刷新(),这样当浏览器得到新网址时通过刷新再更新网页内容,注意为了更好地获取网页内容,设定刷新后停留2秒,这样可以降低抓不到网页内容的机率。为了减少被封的可能,我们还加入了铬合金,请看以下代码:
从硒导入网驱动程序
来自硒。网络驱动。chrome。选择导入选项
来自硒。网络驱动。chrome。服务导入服务
从bs4导入美丽的声音
导入时间,回复
path=Service( d : \ \我的驱动程序\ \ chrome驱动程序。exe )#
# 配置不显示浏览器
chrome_options=Options()
chrome _ options。add _ argument(-headless )
chrome _ options。add _ argument(-disable-GPU )
chrome _ options。add _ argument( User-Agent= Mozilla/5.0(Windows NT 10.0;win 64x 64)apple WebKit/537.36(KHTML,像壁虎一样)Chrome/97。0 .4692 .99 Safari/537.36’)
# 创建铬实例。
driver=webdriver .Chrome(service=path,options=chrome_options)
lst=[快乐,帮助,晚上,伟大,思考,适应]
对于lst:中的单词
URL= https://skell。素描引擎。eu/#结果?lang=enquery= word f=concordance
driver.get(url)
# 刷新网页获取新数据
driver.refresh()
时间。睡眠(2)
# page_source—— "获得页面源码
resp=driver.page_source
# 解析源码
soup=BeautifulSoup(resp, html.parser )
table=soup.find_all(td )
用打开( eps.txt , a ,编码=utf-8 )作为f:
f.write(f\n{word}的例子\n )
对于表[0:6]:中的我
文本=我。文本
#替换多余的空格
new=re.sub(\s , ,text)
#写入文本文件(文本文件)文本
用打开( eps.txt , a ,编码=utf-8 )作为f:
f.write(re.sub(r^(\d .),r\n\1 ,new))
driver.close()
1.为了加快访问速度,我们设置不显示浏览器,通过chrome。选项实现
2.最近通过是正则表达式来清理格式。
3.我们设置表[0:6]来获取前三个句子的内容,最后显示结果如下。
幸福的的例子
1.这种愉快的心情大致持续到去年秋天。
2.住宿既不方便也不愉快。
3.一个快乐的大家庭"对抗共产主义"。
帮助的例子
1.敷上湿热的毛巾可能有助于减轻不适。
2.强光有助于更有效地再现颜色
ly.
3. My survival route are self help books.
evening的例子
1. The evening feast costs another $10.
2. My evening hunt was pretty flat overall.
3. The area nightclubs were active during evenings .
great的例子
1. The three countries represented here are three great democracies.
2. Our three different tour guides were great .
3. Your receptionist "crew" is great !
think的例子
1. I said yes immediately without thinking everything through.
2. This book was shocking yet thought provoking.
3. He thought "disgusting" was more appropriate.
adapt的例子
1. The novel has been adapted several times.
2. There are many ways plants can adapt .
3. They must adapt quickly to changing deadlines.
补充:经过代码的优化以后,例句的爬取更加快捷,代码如下:
from selenium import webdriverfrom selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from bs4 import BeautifulSoup
import time,re
import os
# 配置模拟浏览器的位置
path = Service("D:\\MyDrivers\\chromedriver.exe")#
# 配置不显示浏览器
chrome_options = Options()
chrome_options.add_argument(--headless)
chrome_options.add_argument(--disable-gpu)
chrome_options.add_argument(User-Agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36)
# 创建Chrome实例 。
def get_wordlist():
wordlist=[]
with open("wordlist.txt",r,encoding=utf-8) as f:
lines=f.readlines()
for line in lines:
word=line.strip()
wordlist.append(word)
return wordlist
def main(lst):
driver = webdriver.Chrome(service=path,options=chrome_options)
for word in lst:
url="https://skell.sketchengine.eu/#result?lang=en&query="+word+"&f=concordance"
driver.get(url)
driver.refresh()
time.sleep(2)
# page_source——》页面源码
resp=driver.page_source
# 解析源码
soup=BeautifulSoup(resp,"html.parser")
table = soup.find_all("td")
with open("examples.txt",a+,encoding=utf-8) as f:
f.writelines(f"\n{word}的例子\n")
for i in table[0:6]:
text=i.text
new=re.sub("\s+"," ",text)
with open("eps.txt",a+,encoding=utf-8) as f:
f.write(new)
# f.writelines(re.sub("(\.\s)(\d+\.)","\1\n\2",new))
if __name__=="__main__":
lst=get_wordlist()
main(lst)
os.startfile("examples.txt")
总结
到此这篇关于Python无法用requests获取网页源码的文章就介绍到这了,更多相关requests获取网页源码内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。