繁体   English   中英

Python 从 CSV 抓取多个 URL 并导出到另一个 CSV

[英]Python crawl multiples URLs from a CSV and export to another CSV

我需要遍历存储在 CSV 文件中的 URL。 我想从列出的 URL 中提取电话和 ZIP。

请如果你能帮助我,我很感激!

   # read csv with just url per line
    with open('urls.csv') as file:
        start_urls = [line.strip() for line in file]

    def start_request(self):
        request = Request(url = self.start_urls, callback=self.parse)
        yield request
    
    def parse(self, response):
    
            html = response.body
            soup = BeautifulSoup(html, 'lxml')
            text = soup.get_text()

            phone = re.findall(r'\d{3}-\d{3}-\d{4}', html, re.MULTILINE)
            zipcode = re.findall(r'(?<=, [A-Z]{2} )\d{5}', html, re.MULTILINE)
            phn_1 = []
            zipcode_1 = []
´´´

您描述了您的目标,但没有提及当前无法正常工作的部分。

你写了这个:

    def start_request(self):
        request = Request(url=self.start_urls, callback=self.parse)
        yield request

这不是你想要的。 特别是我希望 Request() 接受单个 url 而不是列表。 此外,使用回调很好,但可能比需要的更好。 试试这个简化的方法:

for url in start_urls:
    self.parse(Request(url=url))

我确信这个表达式对你很有效: [line.strip() for line in file] 为了强调这一切都是为了处理换行符,使用起来会更清楚

line.rstrip()

代替

line.strip()

感谢你的回答! 我可以循环,但是当我循环获取带有数据的 CSV 时,我无法获取电话和 ZIP。 任何帮助我将不胜感激!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM