당신은 파이썬이 일을 기계화 및 BeautifulSoup4를 사용할 수 있습니다. 설치하기가 상대적으로 쉽습니다. Mechanize가 아닌 다른 라이브러리를 사용하여 인터넷을 탐색 할 수는 있지만 꽤 사용하기 쉽습니다. Shelve 모듈을 사용하여 정보 비트를 파이썬으로 읽을 수있는 (사전) 형식으로 저장할 수 있습니다.
코드의 전체 내용은 원하는 정보의 양에 따라 100+ 회선이됩니다.
는 HTML을 읽어 r=br.open(url)
을 사용하여 페이지를 열려면 브라우저를 사용 br=mechanize.Browser()
와 브라우저 객체를 생성 :
일반적으로, 여기에 프로그램을 코딩 할 방법 페이지의 내용 : html=r.read()
U se BeautifulSoup로 html을 읽을 수있는 형식으로 파싱합니다. soup=BeautifulSoup(html)
soup.findAll()
을 사용하면 원하는 페이지에 대한 링크가 포함 된 html 요소를 찾을 수 있습니다. html의 어떤 객체가이 정보를 포함하는지 패턴을 얻으려면 인터넷 브라우저를 사용하여 html 요소와 소스 코드를 검사하는 것이 좋습니다. 그렇게하면 당신이 원하는 것을 알 수 있습니다. 상황이 다르기는하지만 비슷한 페이지에서 다른 방식으로 색인이 생성되기 때문에 때로는 조금 까다 롭습니다. 당신이 더 많은 정보를 얻을해야 할 때마다
당신은 2-5 새로운 URL을 반복하는 단계를 유지할 수 있습니다. 이렇게하면 페이지 하단을 탐색 할 수 있습니다 (페이지 당 50 개의 항목으로 제한되지만 자동으로 탐색 할 수 있음).
url_dict=shelve.open(html_filename)
#opens webpage
r=br.open(first_url)
for i in range(1,20):
#navigates upper browser to next page for non-first-pages
if (i !=1):
r=br.open(first_url+str(i)+'_p/')
#collects list of urls to be navigated by sr
html=r.read()
soup=BeautifulSoup(html)
frames=soup.find_all("a",{"class":br_class})#br_class is defined globally
time.sleep(1)
for item in frames:
url_suffix=item['href']
full_url=url_prefix+url_suffix
full_url=full_url.encode('ascii','ignore')
if str(full_url) not in url_dict:
url_dict[str(full_url)]=get_information(full_url,sr)
time.sleep(1)
get_information() 메소드는 다양한 URL을 살펴보고 정보의 사전을 반환 여기
내가 가진 웹 크롤러의 일부 샘플 코드입니다. 이 파일은 shelve 모듈을 사용하여 파일에 저장되므로 나중에 사람이 읽을 수있는 파일에 저장할 수 있습니다. 특허 번호 만보고 있기 때문에 이것이 반드시 필요한 것은 아닙니다.
모두 완료하면 Python으로 CSV 파일에 쓸 수 있습니다.
여기 내 크롤러 용으로 탭으로 구분 된 csv 작성자가 있습니다. 여전히 디버깅 할 필요가 있지만 일반적인 레이아웃은 정확합니다.
def parse_data():
data=shelve.open(html_filename)
with open(out_file,'w') as out_handle:
line = '\t'
for item in header_list:
line=line+item+'\t'
out_handle.write(line)
for url in data:
line=""
for item in header_list:
line=line+data[item]+'\t'
out_handle.write(line)
print("Done writing data")
data.close()
파일을 한 후, 올바른 디렉토리에 python [filename]
동안을 사용하여 Windows 명령 줄에서 실행할 수 있습니다.