Python 在网站上搜索地址值
一段时间以来,我一直在琢磨如何解决矿山的这一困境。我的csv文件中有一个地址列,其中包含地址列表。我希望能够指导Python使用csv文件中的各个地址值搜索下面指定的网站,并将结果保存到新的csv文件中Python 在网站上搜索地址值,python,python-2.7,csv,web-scraping,Python,Python 2.7,Csv,Web Scraping,一段时间以来,我一直在琢磨如何解决矿山的这一困境。我的csv文件中有一个地址列,其中包含地址列表。我希望能够指导Python使用csv文件中的各个地址值搜索下面指定的网站,并将结果保存到新的csv文件中 import csv import requests with open('C:/Users/thefirstcolumn.csv') as csvfile: reader = csv.DictReader(csvfile) for row in reader:
import csv
import requests
with open('C:/Users/thefirstcolumn.csv') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['Address'])
website = requests.get('https://etrakit.friscotexas.gov/Search/permit.aspx')
writer = csv.writer(open('thematchingresults.csv', 'w'))
print website.content
例如:
csv文件中的一个地址值:
6525 Mountain Sky Rd
在搜索框中手动粘贴地址时返回三行数据。如何告诉Python在网站上搜索csv文件中的每个地址,并将每个地址的结果保存在新的csv文件中。如何完成这项艰巨的任务?请求模块从网站下载静态HTML页面。您不能与Javascript交互 您需要使用与网站交互 比如说
from selenium import webdriver
from bs4 import BeautifulSoup
import time
driver = webdriver.Firefox()
driver.get('https://etrakit.friscotexas.gov/Search/permit.aspx')
#read in addresses
with open('file.csv','r') as f:
adresses = f.readlines()
# use css selectors to locate search field
for address in adresses:
driver.find_element_by_css_selector('#cplMain_txtSearchString').clear()
driver.find_element_by_css_selector('#cplMain_txtSearchString').send_keys(address)
driver.find_element_by_css_selector('#cplMain_btnSearch').click()
time.sleep(5)
# JS injected HTML
soup = BeautifulSoup(driver.page_source)
# extract relavant info from the soup
# and save to your new csv here
请求模块从网站下载静态HTML页面。您不能与Javascript交互 您需要使用与网站交互 比如说
from selenium import webdriver
from bs4 import BeautifulSoup
import time
driver = webdriver.Firefox()
driver.get('https://etrakit.friscotexas.gov/Search/permit.aspx')
#read in addresses
with open('file.csv','r') as f:
adresses = f.readlines()
# use css selectors to locate search field
for address in adresses:
driver.find_element_by_css_selector('#cplMain_txtSearchString').clear()
driver.find_element_by_css_selector('#cplMain_txtSearchString').send_keys(address)
driver.find_element_by_css_selector('#cplMain_btnSearch').click()
time.sleep(5)
# JS injected HTML
soup = BeautifulSoup(driver.page_source)
# extract relavant info from the soup
# and save to your new csv here
您需要对csv文件中的每个值执行
POST
请求。例如,要在上搜索“6525 Mountain Sky Rd”,您可以查看开发人员控制台以查看它提供了什么POST参数。例如:
您可以使用类似于
请求
的方法传递标题值和表单数据,也可以使用类似于casper
或selenium
的方法模拟浏览器 您需要对csv文件中的每个值执行POST
请求。例如,要在上搜索“6525 Mountain Sky Rd”,您可以查看开发人员控制台以查看它提供了什么POST参数。例如:
您可以使用类似于
请求
的方法传递标题值和表单数据,也可以使用类似于casper
或selenium
的方法模拟浏览器 您不能做什么?我需要关于如何指导Python逐个搜索每个地址列值的帮助。我该怎么做?您不能做什么?我需要帮助,了解如何指导Python逐个搜索每个地址列值。我该怎么做呢?多亏了Tobey,我尝试了Selenium,但据我所知,Selenium只打开一个浏览器并使其自动化。我认为它实际上无法在搜索框中逐个搜索每个地址列值。我将扩展我的答案以解释Hanks Tobey,该脚本做了大量工作,但它不会将地址的结果保存在csv文件中。如何实现呢?您需要使用html解析器从页面源中提取所需的信息。我建议喝汤。我会让你弄明白这一点谢谢Tobey的帮助。谢谢Tobey,我尝试了Selenium,但据我所知,Selenium只会打开浏览器并使其自动化。我认为它实际上无法在搜索框中逐个搜索每个地址列值。我将扩展我的答案以解释Hanks Tobey,该脚本做了大量工作,但它不会将地址的结果保存在csv文件中。如何实现呢?您需要使用html解析器从页面源中提取所需的信息。我建议喝汤。我会让你解决这个问题谢谢Tobey的帮助selenium在这里怎么可行?我过去曾使用过它,从我的理解来看,简而言之,它自动化了一个网页抓取过程。@PLearner另一个答案对此给出了很好的解释。如果这不能解决您的问题,请告诉我。该脚本的工作非常出色,但它不会将地址的结果保存在csv文件中。如何实现这一点?硒在这里如何可行?我过去曾使用过它,从我的理解来看,简而言之,它自动化了一个网页抓取过程。@PLearner另一个答案对此给出了很好的解释。如果这不能解决您的问题,请告诉我。该脚本的工作非常出色,但它不会将地址的结果保存在csv文件中。如何实现这一点?