相关疑难解决方法(0)

使用python/selenium保存完整的网页(包括css,图像)

我正在使用Python/Selenium将基因序列提交到在线数据库,并希望保存我得到的整个结果页面.下面的代码可以让我得到我想要的结果:

from selenium import webdriver

URL = 'https://blast.ncbi.nlm.nih.gov/Blast.cgi?PROGRAM=blastx&PAGE_TYPE=BlastSearch&LINK_LOC=blasthome'
SEQUENCE = 'CCTAAACTATAGAAGGACAGCTCAAACACAAAGTTACCTAAACTATAGAAGGACAGCTCAAACACAAAGTTACCTAAACTATAGAAGGACAGCTCAAACACAAAGTTACCTAAACTATAGAAGGACAGCTCAAACACAAAGTTACCTAAACTATAGAAGGACA' #'GAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGAGAAGA'
CHROME_WEBDRIVER_LOCATION = '/home/max/Downloads/chromedriver' # update this for your machine

# open page with selenium
# (first need to download Chrome webdriver, or a firefox webdriver, etc)
driver = webdriver.Chrome(executable_path=CHROME_WEBDRIVER_LOCATION)
driver.get(URL)
time.sleep(5)

# enter sequence into the query field and hit 'blast' button to search
seq_query_field = driver.find_element_by_id("seq")
seq_query_field.send_keys(SEQUENCE)

blast_button = driver.find_element_by_id("b1")
blast_button.click()
time.sleep(60)
Run Code Online (Sandbox Code Playgroud)

那时我有一个页面,我可以手动点击"另存为",并获得一个本地文件(带有相应的image/js资产文件夹),让我可以在本地查看整个返回的页面(减去从中动态生成的内容)向下滚动页面,这很好).我假设有一种简单的方法可以模仿python/selenium中的"另存为"功能,但还没有找到.保存下面页面的代码只保存html,并没有给我留下看起来像在Web浏览器中看到的本地文件,图像等.

content = driver.page_source
with open('webpage.html', 'w') as f:
    f.write(content)
Run Code Online (Sandbox Code Playgroud)

我也在SO上找到了这个问题/答案,但是接受的答案只是打开了"另存为"框,并没有提供点击它的方法(正如两位评论者指出的那样) …

python selenium bioinformatics web-crawler

17
推荐指数
2
解决办法
2027
查看次数

保存网页源的固有方法

我已经阅读了很多关于网络抓取的答案,谈论了BeautifulSoup,Scrapy等来执行网络抓取.

有没有办法相当于从网络浏览器保存页面的来源?

也就是说,Python中有没有一种方法可以将它指向一个网站,然后通过标准的Python模块将页面源保存到文本文件中?

这是我到达的地方:

import urllib

f = open('webpage.txt', 'w')
html = urllib.urlopen("http://www.somewebpage.com")

#somehow save the web page source

f.close()
Run Code Online (Sandbox Code Playgroud)

我不太了解 - 但是寻找代码来实际拉取页面的来源以便我可以编写它.我收集到urlopen只是建立联系.

也许有一个readlines()等效于读取网页的行?

python web-scraping

15
推荐指数
1
解决办法
2万
查看次数