웹 페이지에서 일부 문서를 구문 분석하여 두 장의 시트를 만드는 Excel 파일에 저장하는 스크레이퍼를 만들었습니다. 하지만 실행하면 마지막 링크의 문서 만 한 장에 저장하는 반면 두 링크의 문서가있는 두 장의 시트가 제대로 있어야한다는 것을 알 수 있습니다. 심지어 배경에서 무슨 일이 일어나고 있는지 확인하기 위해 결과를 인쇄했지만 잘못된 것은 없습니다. 첫 번째 시트는 덮어 쓰기되고 두 번째 시트는 생성되지 않습니다. 이 문제를 해결하여 데이터가 Excel 파일의 두 장에 저장되도록하는 방법. 조사해 주셔서 미리 감사드립니다.
내 코드는 다음과 같습니다.
import requests
from lxml import html
from pyexcel_ods3 import save_data
name_list = ['Altronix','APC']
def docs_parser(link, name):
res = requests.get(link)
root = html.fromstring(res.text)
vault = {}
for post in root.cssselect(".SubBrandList a"):
if post.text == name:
refining_docs(post.attrib['href'], vault)
def refining_docs(new_link, vault):
res = requests.get(new_link).text
root = html.fromstring(res)
sheet = root.cssselect("#BrandContent h2")[0].text
for elem in root.cssselect(".ProductDetails"):
name_url = elem.cssselect("a[class]")[0].attrib['href']
vault.setdefault(sheet, []).append([str(name_url)])
save_data("docs.ods", vault)
if __name__ == '__main__':
for name in name_list:
docs_parser("http://store.immediasys.com/brands/" , name)
그러나 다른 사이트에 대한 코드를 작성할 때와 같은 방식으로 다른 시트를 만들고 그 안에 문서를 저장한다는 기대를 충족시킵니다. 링크는 다음과 같습니다 : https://www.dropbox.com/s/bgyh1xxhew8hcvm/Pyexcel_so.txt?dl=0
질문 : 첫 번째 시트는 덮어 쓰기되고 두 번째 시트는 생성되지 않습니다. 이 문제를 해결하여 데이터가 Excel 파일의 두 장에 저장되도록하는 방법.
추가되는 모든 링크 에서 통합 문서 파일을 덮어 씁니다 . 루프 내에서 호출
해서는 안되며 스크립트 끝에서 한 번만 호출 하면 됩니다.save_data(...
두 스크립트를 비교하면 차이 가 없으며 둘 다 동일하게 작동하며 통합 문서 파일을 반복해서 덮어 씁니다. 짧은 시간 내에 통합 문서 파일을 160 회 이상 덮어 쓰면 파일 IO가 과부하 될 수 있습니다 .
첫 번째 스크립트는 13 개의 시트를 만들어야합니다 .
data sheet:powerpivot-etc links:20
data sheet:flappy-owl-videos links:1
data sheet:reporting-services-videos links:20
data sheet:csharp links:14
data sheet:excel-videos links:9
data sheet:excel-vba-videos links:20
data sheet:sql-server-videos links:9
data sheet:report-builder-2016-videos links:4
data sheet:ssrs-2016-videos links:5
data sheet:sql-videos links:20
data sheet:integration-services links:19
data sheet:excel-vba-user-form links:20
data sheet:archived-videos links:16
두 번째 스크립트는 2 개의 시트를 만들어야합니다 .
vault sheet:Altronix links:16
vault sheet:APC links:16
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다