爬取網頁時如何寫入文字、圖片到一個文件里?

爬蟲入門求問

爬取網頁的時候

網頁是圖文並茂的

單抓取文字或圖片可以做到

但是如何把圖片、文字一起寫入到文件里?

python可以做到哪一種?比如word?pdf?html?或者其他.

看到有人回答說無意義,補充下:我的目的是下載帖子等圖文並貌的長資料到kindle閱讀,如果圖片和文字分開是容易做到,但是還要手工整合會很浪費時間,不符合自動化編程的思路。


作者:楊航鋒

鏈接:python爬蟲如何按序抓取一個頁面上的圖文? - 楊航鋒的回答 - 知乎

來源:知乎

著作權歸作者所有,轉載請聯繫作者獲得授權。

搬運一個以前的回答!這樣是可以做到的,起因我和幾個同學打算做一個針對大四畢業生的網站,所以需要整合學校官網的校園招聘信息(只抓取校園招聘不要網投簡歷的)我在抓取學校官網的校園招聘信息時就遇到了這個問題。我採取的方法是抓取圖片的鏈接,這個鏈接一般是沒有主域名的,比如

如果只是抓取整個html的話是不會顯示出圖片的,因此抓取該鏈接然後再加上主域名然後再放回到html標籤中即可。效果如下圖所示:

代碼參考:

import requests
import re
from bs4 import BeautifulSoup as bs

def crawl_all_main_url(page=10):
# 默認抓取官網前十頁招聘信息的url
all_url_list = []
for _ in range(1, page+1):
url = "http://zjc.ecit.edu.cn/jy/app/newslist.php?BigClassName=%D5%D0%C6%B8%D0%C5%CF%A2Page={0}".format(_)
page_html = requests.get(url).text
x_url_reg = re.compile("&(.*?)&")
explain_text = re.findall(explain_text_reg, html)[0]
if ("時間" and "地點") in explain_text:
return True
else:
pass

def save_html():
all_url_list = crawl_all_main_url()
for son_url in all_url_list:
if get_title(son_url):
text_html = requests.get(son_url).content.decode("gbk")
domain_url = "http://zjc.ecit.edu.cn/jy"
img_url_reg = re.compile("border=0 src="..(.*?)"")
child_url = re.findall(img_url_reg, text_html)
if child_url != []:
img_url = domain_url + child_url[0]
re_url = "src="..{0}"".format(child_url[0])
end_url = "src="{0}"".format(img_url)
end_html = text_html.replace(re_url, end_url)
soup = bs(end_html, "lxml")
text_div = soup.find_all("div", id="main")[0]
with open("./{0}.html".format(son_url[-11:]), "wb") as file:
text_html = "&U職網提供數據諮詢服務 & & & & {0} &".format(text_div)
file.write(text_html.encode("utf-8"))
else:
with open("./{0}.html".format(son_url[-11:]), "wb") as file:
html = requests.get(son_url).content.decode("gbk")
soup = bs(text_html, "lxml")
text_div = soup.find_all("div", id="main")[0]
text_html = "&U職網提供數據諮詢服務 & & & & {0} &".format(text_div)
file.write(text_html.encode("utf-8"))
else:
continue

if __name__ == "__main__":
save_html()

這裡也給出先前寫的一些爬蟲代碼,題主有興趣可以參考

Fenghuapiao/PythonCrawler


你可以直接保存網頁源代碼到HTML文件,然後你想轉什麼格式都可以。

爬蟲本就是為了抽離數據的,你抽離出來又要合併回去,這又何必呢


HTML比較合適


推薦閱讀:

用 Python 寫爬蟲時應該注意哪些坑?
爬蟲如何解決500錯誤?
Python 學習完基礎語法知識後,如何進一步提高?
用Python爬網頁需要了解什麼背景知識?
python IDE 新手用什麼比較好?

TAG:Python | 計算機 | 爬蟲計算機網路 | Python入門 | 網頁爬蟲 |